2026-04-06 12:41:49 +01:00
|
|
|
"""
|
|
|
|
|
Pydantic models for user module
|
|
|
|
|
|
|
|
|
|
Models:
|
|
|
|
|
- List: Description
|
|
|
|
|
- Models: Description
|
|
|
|
|
"""
|
2026-05-25 12:06:24 +01:00
|
|
|
from typing import Optional
|
2026-04-06 12:41:49 +01:00
|
|
|
from src.schemas import CustomBaseModel
|
|
|
|
|
|
|
|
|
|
|
2026-05-20 10:42:07 +01:00
|
|
|
class OIDCClaims(CustomBaseModel):
|
|
|
|
|
exp: int
|
|
|
|
|
iat: int
|
|
|
|
|
auth_time: int
|
|
|
|
|
jti: str
|
|
|
|
|
iss: str
|
|
|
|
|
aud: str
|
|
|
|
|
sub: str
|
|
|
|
|
typ: str
|
|
|
|
|
azp: str
|
|
|
|
|
sid: str
|
|
|
|
|
acr: str
|
|
|
|
|
allowed_origins: list[str]
|
|
|
|
|
realm_access: dict[str, list[str]]
|
|
|
|
|
resource_access: dict[str, dict[str, list[str]]]
|
|
|
|
|
scope: str
|
|
|
|
|
email_verified: bool
|
|
|
|
|
name: str
|
|
|
|
|
preferred_username: str
|
|
|
|
|
given_name: str
|
|
|
|
|
family_name: str
|
|
|
|
|
email: str
|
|
|
|
|
db_id: int
|
|
|
|
|
|
|
|
|
|
|
2026-04-06 12:41:49 +01:00
|
|
|
class OIDCUser(CustomBaseModel):
|
|
|
|
|
first_name: str
|
|
|
|
|
last_name: str
|
|
|
|
|
email: str
|
|
|
|
|
oidc_id: str
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class UserResponse(CustomBaseModel):
|
|
|
|
|
first_name: str
|
|
|
|
|
last_name: str
|
|
|
|
|
email: str
|
2026-05-25 12:06:24 +01:00
|
|
|
organisations: list[Optional[str]]
|
|
|
|
|
groups: dict[str, list[str]]
|
2026-04-06 12:41:49 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
class OrgResponse(CustomBaseModel):
|
|
|
|
|
org_id: int
|
|
|
|
|
name: str
|