diff --git a/backend/app/api/routes/auth.py b/backend/app/api/routes/auth.py index 78aaf5211..b50e332f3 100644 --- a/backend/app/api/routes/auth.py +++ b/backend/app/api/routes/auth.py @@ -33,7 +33,9 @@ async def set_auth_enabled(db: AsyncSession, enabled: bool) -> None: from sqlalchemy.dialects.sqlite import insert as sqlite_insert stmt = sqlite_insert(Settings).values(key="auth_enabled", value="true" if enabled else "false") - stmt = stmt.on_conflict_do_update(index_elements=["key"], set_={"value": "true" if enabled else "false", "updated_at": func.now()}) + stmt = stmt.on_conflict_do_update( + index_elements=["key"], set_={"value": "true" if enabled else "false", "updated_at": func.now()} + ) await db.execute(stmt) # Note: Don't commit here - let get_db handle it or commit explicitly in the route diff --git a/backend/app/api/routes/printers.py b/backend/app/api/routes/printers.py index 9a784cabe..2f5a86a58 100644 --- a/backend/app/api/routes/printers.py +++ b/backend/app/api/routes/printers.py @@ -48,7 +48,7 @@ async def list_printers(db: AsyncSession = Depends(get_db)): async def create_printer( printer_data: PrinterCreate, db: AsyncSession = Depends(get_db), - _current_user = RequireAdminIfAuthEnabled(), + _current_user=RequireAdminIfAuthEnabled(), ): """Add a new printer.""" # Check if serial number already exists @@ -83,7 +83,7 @@ async def update_printer( printer_id: int, printer_data: PrinterUpdate, db: AsyncSession = Depends(get_db), - _current_user = RequireAdminIfAuthEnabled(), + _current_user=RequireAdminIfAuthEnabled(), ): """Update a printer.""" result = await db.execute(select(Printer).where(Printer.id == printer_id)) @@ -112,7 +112,7 @@ async def delete_printer( printer_id: int, delete_archives: bool = True, db: AsyncSession = Depends(get_db), - _current_user = RequireAdminIfAuthEnabled(), + _current_user=RequireAdminIfAuthEnabled(), ): """Delete a printer. diff --git a/backend/app/core/auth.py b/backend/app/core/auth.py index 0b2723e6e..072ec5754 100644 --- a/backend/app/core/auth.py +++ b/backend/app/core/auth.py @@ -106,9 +106,7 @@ async def get_current_user_optional( return user -async def get_current_user( - credentials: Annotated[HTTPAuthorizationCredentials, Depends(security)] -) -> User: +async def get_current_user(credentials: Annotated[HTTPAuthorizationCredentials, Depends(security)]) -> User: """Get the current authenticated user from JWT token.""" credentials_exception = HTTPException( status_code=status.HTTP_401_UNAUTHORIZED, @@ -136,9 +134,7 @@ async def get_current_user( return user -async def get_current_active_user( - current_user: Annotated[User, Depends(get_current_user)] -) -> User: +async def get_current_active_user(current_user: Annotated[User, Depends(get_current_user)]) -> User: """Get the current active user (alias for clarity).""" return current_user @@ -189,9 +185,7 @@ async def require_auth_if_enabled( def require_role(required_role: str): """Dependency factory for role-based access control.""" - async def role_checker( - current_user: Annotated[User, Depends(get_current_user)] - ) -> User: + async def role_checker(current_user: Annotated[User, Depends(get_current_user)]) -> User: if current_user.role != required_role: raise HTTPException( status_code=status.HTTP_403_FORBIDDEN, @@ -346,6 +340,7 @@ def RequireAdmin(): """Dependency that requires admin role.""" return Depends(require_role("admin")) + def RequireAdminIfAuthEnabled(): """Dependency that requires admin role if auth is enabled.""" return Depends(require_admin_if_auth_enabled()) diff --git a/frontend/src/contexts/AuthContext.tsx b/frontend/src/contexts/AuthContext.tsx index e9def611a..9429dad9b 100644 --- a/frontend/src/contexts/AuthContext.tsx +++ b/frontend/src/contexts/AuthContext.tsx @@ -30,7 +30,7 @@ export function AuthProvider({ children }: { children: React.ReactNode }) { try { const currentUser = await api.getCurrentUser(); setUser(currentUser); - } catch (error) { + } catch { // Token invalid, clear it setAuthToken(null); setUser(null); @@ -79,7 +79,7 @@ export function AuthProvider({ children }: { children: React.ReactNode }) { try { const currentUser = await api.getCurrentUser(); setUser(currentUser); - } catch (error) { + } catch { setAuthToken(null); setUser(null); }