Update backend to setup admin

This commit is contained in:
dvirlabs 2025-12-08 15:04:37 +02:00
parent e0b3102007
commit 0f3aa43b89

View File

@ -58,6 +58,8 @@ def decode_token(token: str) -> dict:
def get_current_user(credentials: HTTPAuthorizationCredentials = Depends(security)) -> dict: def get_current_user(credentials: HTTPAuthorizationCredentials = Depends(security)) -> dict:
"""Get current user from JWT token (for protected routes)""" """Get current user from JWT token (for protected routes)"""
from user_db_utils import get_user_by_id
token = credentials.credentials token = credentials.credentials
payload = decode_token(token) payload = decode_token(token)
user_id = payload.get("sub") user_id = payload.get("sub")
@ -66,7 +68,21 @@ def get_current_user(credentials: HTTPAuthorizationCredentials = Depends(securit
status_code=status.HTTP_401_UNAUTHORIZED, status_code=status.HTTP_401_UNAUTHORIZED,
detail="Invalid authentication credentials", detail="Invalid authentication credentials",
) )
return {"user_id": int(user_id), "username": payload.get("username")}
# Get full user info from database to include is_admin
user = get_user_by_id(int(user_id))
if not user:
raise HTTPException(
status_code=status.HTTP_401_UNAUTHORIZED,
detail="User not found",
)
return {
"user_id": user["id"],
"username": user["username"],
"display_name": user["display_name"],
"is_admin": user.get("is_admin", False)
}
# Optional dependency - returns None if no token provided # Optional dependency - returns None if no token provided