1212from rest_framework .request import Request
1313
1414from application .access_control .models import Authorization_Group , User
15- from application .access_control .queries .user import get_user_by_username
15+ from application .access_control .queries .user import get_user_by_email
1616from application .commons .models import Settings
1717
1818OIDC_PREFIX = "Bearer"
@@ -71,12 +71,12 @@ def _validate_jwt(self, token: str) -> Optional[User]:
7171 algorithms = ALGORITHMS ,
7272 audience = os .environ ["OIDC_CLIENT_ID" ],
7373 )
74- username = payload .get (os .environ ["OIDC_USERNAME " ])
75- user = get_user_by_username ( username )
74+ email = payload .get (os .environ ["OIDC_EMAIL " ])
75+ user = get_user_by_email ( email )
7676 if user :
7777 user = self ._check_user_change (user , payload )
7878 return user
79- return self ._create_user (username , payload )
79+ return self ._create_user (email , payload )
8080 except jwt .PyJWTError as e :
8181 raise AuthenticationFailed (str (e )) from e
8282
@@ -94,10 +94,10 @@ def _get_jwks_uri(self) -> str:
9494
9595 return jwks_uri
9696
97- def _create_user (self , username : str , payload : dict ) -> User :
98- user = User (username = username , first_name = "" , last_name = "" , email = "" )
99- if os .environ .get ("OIDC_EMAIL " ):
100- user .email = payload [os .environ ["OIDC_EMAIL " ]]
97+ def _create_user (self , email : str , payload : dict ) -> User :
98+ user = User (email = email , first_name = "" , last_name = "" , email = "" )
99+ if os .environ .get ("OIDC_USERNAME " ):
100+ user .username = payload [os .environ ["OIDC_USERNAME " ]]
101101 if os .environ .get ("OIDC_FULL_NAME" ):
102102 user .full_name = payload [os .environ ["OIDC_FULL_NAME" ]]
103103 if os .environ .get ("OIDC_FIRST_NAME" ):
@@ -126,7 +126,7 @@ def _create_user(self, username: str, payload: dict) -> User:
126126 return user
127127 except IntegrityError as e :
128128 # User was most likely created by another request
129- existing_user = get_user_by_username ( username )
129+ existing_user = get_user_by_email ( email )
130130 if not existing_user :
131131 raise e
132132 return existing_user
0 commit comments