"""FastAPI dependencies — auth, current user.""" from fastapi import Cookie, HTTPException, status from utils import auth as auth_utils SESSION_COOKIE = "session_token" def get_current_session(session_token: str | None = Cookie(default=None, alias=SESSION_COOKIE)) -> dict: session = auth_utils.get_session(session_token) if not session: raise HTTPException(status_code=status.HTTP_401_UNAUTHORIZED, detail="Not authenticated") return session def require_admin(session: dict = None) -> dict: if session is None: from fastapi import Depends session = Depends(get_current_session) if session.get("user_role") != "admin": raise HTTPException(status_code=status.HTTP_403_FORBIDDEN, detail="Admin required") return session def require_admin_session(session_token: str | None = Cookie(default=None, alias=SESSION_COOKIE)) -> dict: session = auth_utils.get_session(session_token) if not session: raise HTTPException(status_code=status.HTTP_401_UNAUTHORIZED, detail="Not authenticated") if session.get("user_role") != "admin": raise HTTPException(status_code=status.HTTP_403_FORBIDDEN, detail="Admin required") return session