Skip to content

Commit f26e2dc

Browse files
committed
feat: login user via email instead of username
1 parent cc00e09 commit f26e2dc

1 file changed

Lines changed: 9 additions & 9 deletions

File tree

backend/application/access_control/services/oidc_authentication.py

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
from rest_framework.request import Request
1313

1414
from 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
1616
from application.commons.models import Settings
1717

1818
OIDC_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

Comments
 (0)