feat(members): split username/display_name, sync updates to authentik, add password reset API and refresh docs

This commit is contained in:
Chris
2026-03-30 22:15:41 +08:00
parent 8ed50cdcc6
commit 75f9f28588
13 changed files with 224 additions and 19 deletions

View File

@@ -2,7 +2,8 @@ from pydantic import BaseModel
class AuthentikEnsureUserRequest(BaseModel):
sub: str
sub: str | None = None
username: str | None = None
email: str
display_name: str | None = None
is_active: bool = True

View File

@@ -78,6 +78,7 @@ class SiteItem(BaseModel):
class MemberItem(BaseModel):
id: str
authentik_sub: str
username: str | None = None
email: str | None = None
display_name: str | None = None
is_active: bool
@@ -85,6 +86,7 @@ class MemberItem(BaseModel):
class MemberUpsertRequest(BaseModel):
authentik_sub: str | None = None
username: str | None = None
email: str | None = None
display_name: str | None = None
is_active: bool = True
@@ -92,12 +94,18 @@ class MemberUpsertRequest(BaseModel):
class MemberUpdateRequest(BaseModel):
username: str | None = None
email: str | None = None
display_name: str | None = None
is_active: bool | None = None
sync_to_authentik: bool = True
class MemberPasswordResetResponse(BaseModel):
authentik_sub: str
temporary_password: str
class MemberPermissionGroupsUpdateRequest(BaseModel):
group_keys: list[str]

View File

@@ -3,6 +3,7 @@ from pydantic import BaseModel
class UserUpsertBySubRequest(BaseModel):
sub: str
username: str | None = None
email: str | None = None
display_name: str | None = None
is_active: bool = True