"""Authentification admin — session cookie simple.""" from functools import wraps from fastapi import Request from fastapi.responses import RedirectResponse def is_authenticated(request: Request) -> bool: return request.session.get("authenticated") is True def require_auth(func): """Décorateur pour les routes admin.""" @wraps(func) async def wrapper(request: Request, *args, **kwargs): if not is_authenticated(request): return RedirectResponse(url="/admin/login", status_code=302) return await func(request, *args, **kwargs) return wrapper