refactor(stage-4): partition monolithic main.py into modular APIRouters
This commit is contained in:
1 parent
4e1f809018
commit
dde87e5d6c
15 files changed
+2202
-2138
No files matched your search
+22
@@ -4,6 +4,7 @@ import secrets
|
||||
import time
|
||||
from datetime import datetime, timezone, timedelta
|
||||
from typing import Optional
|
||||
from fastapi import Request, HTTPException, status
|
||||
from app import config
|
||||
from app.database import get_db
|
||||
|
||||
@@ -136,3 +137,24 @@ def ensure_admin_user():
|
||||
if count == 0 and config.ADMIN_PASSWORD:
|
||||
create_user(config.ADMIN_USERNAME, config.ADMIN_PASSWORD)
|
||||
|
||||
|
||||
def get_optional_user(request: Request) -> Optional[dict]:
|
||||
token = request.cookies.get(config.SESSION_COOKIE_NAME)
|
||||
if not token:
|
||||
auth_header = request.headers.get("Authorization", "")
|
||||
if auth_header.startswith("Bearer "):
|
||||
token = auth_header[7:].strip()
|
||||
if token:
|
||||
return get_user_from_session(token)
|
||||
return None
|
||||
|
||||
|
||||
def require_user(request: Request) -> dict:
|
||||
user = get_optional_user(request)
|
||||
if not user:
|
||||
raise HTTPException(
|
||||
status_code=status.HTTP_401_UNAUTHORIZED,
|
||||
detail="Authentication required",
|
||||
)
|
||||
return user
|
||||
|
||||
Reference in new issue
Block a user