Skip to content

Commit 4fe163a

Browse files
author
ci bot
committed
Merge branch 'fix_auth_case_sensitive_bug' into 'enterprise'
Fix: Make authentication case insensitive See merge request dkinternal/testgen/dataops-testgen!313
2 parents e27a48d + 83ece03 commit 4fe163a

2 files changed

Lines changed: 11 additions & 5 deletions

File tree

testgen/common/models/user.py

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
from datetime import UTC, datetime
2-
from typing import Literal
2+
from typing import Literal, Self
33
from uuid import UUID, uuid4
44

5-
from sqlalchemy import Column, String, asc, func, update
5+
import streamlit as st
6+
from sqlalchemy import Column, String, asc, func, select, update
67
from sqlalchemy.dialects import postgresql
78

89
from testgen.common.models import get_current_session
@@ -43,3 +44,8 @@ def save(self, update_latest_login: bool = False) -> None:
4344
self.latest_login = datetime.now(UTC)
4445
super().save()
4546

47+
@classmethod
48+
@st.cache_data(show_spinner=False)
49+
def get(cls, identifier: str) -> Self | None:
50+
query = select(cls).where(func.lower(User.username) == func.lower(identifier))
51+
return get_current_session().scalars(query).first()

testgen/ui/auth.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ def is_logged_in(self) -> bool:
3636
@property
3737
def user_display(self) -> str | None:
3838
return (self.user.name or self.user.username) if self.user else None
39-
39+
4040
@property
4141
def default_page(self) -> str | None:
4242
return "project-dashboard" if self.user else ""
@@ -63,7 +63,7 @@ def get_credentials(self):
6363
"password": item.password,
6464
}
6565
return {"usernames": usernames}
66-
66+
6767
def login_user(self, username: str) -> None:
6868
self.user = User.get(username)
6969
self.user.save(update_latest_login=True)
@@ -83,7 +83,7 @@ def load_user_session(self) -> None:
8383
def end_user_session(self) -> None:
8484
self._clear_jwt_cookie()
8585
self.user = None
86-
86+
8787
def _clear_jwt_cookie(self) -> None:
8888
execute_javascript(
8989
f"""await (async function () {{

0 commit comments

Comments
 (0)