fix: handle string OIDC attributes like Google hd (hosted domain) #162
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Problem
When using
OIDC_GROUPS_ATTRIBUTEwith attributes that return a string instead of a list (e.g., Google'shdattribute for hosted domain), the code was iterating over each character of the string, creating individual group entries for each character.For example, with
OIDC_GROUPS_ATTRIBUTE=hdand domaingupy.com.br, the groups table would be populated with:Solution
This fix ensures
user_groupsis always converted to a list before being passed topopulate_groups()andupdate_user(), preventing the character-by-character iteration issue.Changes
auth.pyto convert string attributes to a single-element listTesting
Tested with Google OIDC provider using
hd(hosted domain) as the groups attribute.