diff --git a/common_lib/utils/auth.py b/common_lib/utils/auth.py index 334e853..80f9d08 100644 --- a/common_lib/utils/auth.py +++ b/common_lib/utils/auth.py @@ -17,14 +17,11 @@ class CurrentUser: session_id: str permissions: List[str] -def _require_permissions_flag() -> bool: - return False - -async def get_current_user( +async def _fetch_current_user( request: Request, - credentials: HTTPAuthorizationCredentials = Depends(auth_scheme), - require_permissions: bool = Depends(_require_permissions_flag) -): + credentials: HTTPAuthorizationCredentials, + require_permissions: bool +) -> CurrentUser: token = credentials.credentials ip = request.client.host or "(unknown)" user_agent = request.headers.get("User-Agent", "(unknown)") @@ -45,7 +42,6 @@ async def get_current_user( raise HTTPException(status_code=status.HTTP_503_SERVICE_UNAVAILABLE, detail="Token service unavailable") if response.status_code != 200: - # raise HTTPException(status_code=response.status_code, detail=response.json().get("detail", "Invalid token")) raise HTTPException( status_code=response.status_code, detail=f"token_service: {response.text}" @@ -61,6 +57,19 @@ async def get_current_user( ) +async def get_current_user( + request: Request, + credentials: HTTPAuthorizationCredentials = Depends(auth_scheme) +) -> CurrentUser: + return await _fetch_current_user(request, credentials, require_permissions=False) + + +async def get_current_user_with_permissions( + request: Request, + credentials: HTTPAuthorizationCredentials = Depends(auth_scheme) +) -> CurrentUser: + return await _fetch_current_user(request, credentials, require_permissions=True) + def validate_username(value: str, field_name: str = "login", with_httpexception=False,