diff --git a/backend/app/api/routes/settings.py b/backend/app/api/routes/settings.py index 973811c35..4d895c2a0 100644 --- a/backend/app/api/routes/settings.py +++ b/backend/app/api/routes/settings.py @@ -34,17 +34,17 @@ async def get_setting(db: AsyncSession, key: str) -> str | None: async def get_external_login_url(db: AsyncSession) -> str: """Get the external URL for the login page. - + Uses external_url from settings if available, otherwise falls back to APP_URL env var. - + Args: db: Database session - + Returns: Full URL to the login page """ import os - + external_url = await get_setting(db, "external_url") if external_url: external_url = external_url.rstrip("/") diff --git a/backend/app/api/routes/users.py b/backend/app/api/routes/users.py index 20c2fce3d..611486f4e 100644 --- a/backend/app/api/routes/users.py +++ b/backend/app/api/routes/users.py @@ -80,9 +80,7 @@ async def create_user( advanced_auth_enabled = advanced_auth_setting and advanced_auth_setting.value.lower() == "true" # Check if username already exists (case-insensitive) - existing_user = await db.execute( - select(User).where(func.lower(User.username) == func.lower(user_data.username)) - ) + existing_user = await db.execute(select(User).where(func.lower(User.username) == func.lower(user_data.username))) if existing_user.scalar_one_or_none(): raise HTTPException( status_code=status.HTTP_400_BAD_REQUEST, @@ -104,9 +102,7 @@ async def create_user( detail="Email is required when advanced authentication is enabled", ) # Check if email already exists (case-insensitive) - existing_email = await db.execute( - select(User).where(func.lower(User.email) == func.lower(user_data.email)) - ) + existing_email = await db.execute(select(User).where(func.lower(User.email) == func.lower(user_data.email))) if existing_email.scalar_one_or_none(): raise HTTPException( status_code=status.HTTP_400_BAD_REQUEST, diff --git a/backend/app/core/auth.py b/backend/app/core/auth.py index 99690e8f6..0f1d546a0 100644 --- a/backend/app/core/auth.py +++ b/backend/app/core/auth.py @@ -145,7 +145,7 @@ async def get_user_by_email(db: AsyncSession, email: str) -> User | None: async def authenticate_user(db: AsyncSession, username: str, password: str) -> User | None: """Authenticate a user by username and password. - + Username lookup is case-insensitive. Password is case-sensitive. """ user = await get_user_by_username(db, username) @@ -160,7 +160,7 @@ async def authenticate_user(db: AsyncSession, username: str, password: str) -> U async def authenticate_user_by_email(db: AsyncSession, email: str, password: str) -> User | None: """Authenticate a user by email and password. - + Email lookup is case-insensitive. Password is case-sensitive. """ user = await get_user_by_email(db, email) diff --git a/backend/tests/integration/test_auth_api.py b/backend/tests/integration/test_auth_api.py index ba1bfa4b4..97d717484 100644 --- a/backend/tests/integration/test_auth_api.py +++ b/backend/tests/integration/test_auth_api.py @@ -798,6 +798,6 @@ class TestAuthMiddlewarePublicRoutes: ) # Should not be 401 (must be accessible for password reset from login page) assert response.status_code != 401 - # Will likely be 400 (advanced auth not enabled) but that's okay - + # Will likely be 400 (advanced auth not enabled) but that's okay - # the important thing is it's not blocked by auth middleware assert response.status_code in [200, 400]