INNER CODE UNIT · Python
current_principal
NextWeb4/lan-file-transfer · lan_transfer/api.py:113
async def current_principal(
authorization: Annotated[str | None, Header(alias="Authorization")] = None,
x_admin_session: Annotated[str | None, Header(alias="X-Admin-Session")] = None,
x_user_session: Annotated[str | None, Header(alias="X-User-Session")] = None,
session_cookie: Annotated[str | None, Cookie(alias=SESSION_COOKIE)] = None,
) -> Principal:
token = session_token_from_headers(authorization, x_admin_session, x_user_session, session_cookie)
return auth.principal_for_session(token) or guest_principal()
return current_principal
def login_dependency(auth: AccountAuthManager):
current = principal_dependency(auth)
async def require_login(principal: Principal = Depends(current)) -> Principal:
if not principal.is_authenticated:
raise HTTPException(status_code=403, detail="Login required.")