Spaces:
Runtime error
Runtime error
| """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 | |