scheduler / api /deps.py
umangchaudhry's picture
Upload 31 files
0d04b76 verified
Raw
History Blame Contribute Delete
1.22 kB
"""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