This commit is contained in:
cheykrym 2025-07-02 02:33:46 +03:00
parent 2c0e292ce0
commit d3633a7b47

View File

@ -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,