api: render is_authorized in user-info api

This commit is contained in:
lilly 2026-05-14 14:17:46 +02:00
commit 9b97500516
Signed by: lilly
SSH key fingerprint: SHA256:y9T5GFw2A20WVklhetIxG1+kcg/Ce0shnQmbu1LQ37g
2 changed files with 5 additions and 9 deletions

View file

@ -52,15 +52,14 @@ app.add_exception_handler(exceptions.HttpProblemException, exceptions.problem_ex
@app.get("/api/user-info/", name="get-user-info", tags=["auth"], responses={status.HTTP_401_UNAUTHORIZED: {"model": models.HttpProblemDetail}}) @app.get("/api/user-info/", name="get-user-info", tags=["auth"], responses={status.HTTP_401_UNAUTHORIZED: {"model": models.HttpProblemDetail}})
async def get_user_info(req: Request, current_user: deps.CurrentUser) -> models.UserStatus: async def get_user_info(req: Request, current_user: deps.CurrentUser) -> models.UserStatus:
if current_user is None: if current_user is None:
return models.UserStatus(is_logged_in=False, user_info=None, guaranteed_session_until=None) return models.UserStatus(is_logged_in=False, is_authorized=False, username=None, guaranteed_session_until=None)
else: else:
return models.UserStatus( return models.UserStatus(
is_logged_in=True, is_logged_in=True,
is_authorized=True,
guaranteed_session_until=datetime.fromtimestamp(current_user.id_token.exp, UTC), guaranteed_session_until=datetime.fromtimestamp(current_user.id_token.exp, UTC),
user_info=models.UserInfo(
username=current_user.id_token.preferred_username, username=current_user.id_token.preferred_username,
) )
)
@app.get("/auth/login", tags=["auth"], response_class=RedirectResponse, status_code=302) @app.get("/auth/login", tags=["auth"], response_class=RedirectResponse, status_code=302)

View file

@ -38,14 +38,11 @@ class CurrentUser(BaseModel):
id_token: IdToken id_token: IdToken
class UserInfo(BaseModel):
username: str
class UserStatus(BaseModel): class UserStatus(BaseModel):
is_logged_in: bool is_logged_in: bool
is_authorized: bool
guaranteed_session_until: Optional[datetime] guaranteed_session_until: Optional[datetime]
user_info: Optional[UserInfo] username: Optional[str]
class LockStatus(BaseModel): class LockStatus(BaseModel):