Skip to content

Commit bca581b

Browse files
committed
Added case insensitive email support
1 parent 84219cc commit bca581b

2 files changed

Lines changed: 12 additions & 2 deletions

File tree

backend/app/users/service.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
from typing import Any
22

3-
from sqlmodel import Session, select
3+
from sqlmodel import Session, func, select
44

55
from app.auth.security import get_password_hash
66
from app.users.models import User
@@ -32,6 +32,6 @@ def update_user(*, session: Session, db_user: User, user_in: UserUpdate) -> Any:
3232

3333

3434
def get_user_by_email(*, session: Session, email: str) -> User | None:
35-
statement = select(User).where(User.email == email)
35+
statement = select(User).where(func.lower(User.email) == func.lower(email))
3636
session_user = session.exec(statement).first()
3737
return session_user

backend/tests/users/test_service.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,16 @@ def test_get_user(db: Session) -> None:
8181
assert jsonable_encoder(user) == jsonable_encoder(user_2)
8282

8383

84+
def test_get_user_by_email_case_insensitive(db: Session) -> None:
85+
email = random_email()
86+
password = random_lower_string()
87+
user_in = UserCreate(email=email, password=password)
88+
user = user_service.create_user(session=db, user_create=user_in)
89+
found_user = user_service.get_user_by_email(session=db, email=email.upper())
90+
assert found_user
91+
assert found_user.id == user.id
92+
93+
8494
def test_update_user(db: Session) -> None:
8595
password = random_lower_string()
8696
email = random_email()

0 commit comments

Comments
 (0)