feat(admin): implement group-centric relations and system/module/company linkage views

This commit is contained in:
Chris
2026-03-30 19:38:49 +08:00
parent 37a69081e3
commit ea5285501a
15 changed files with 753 additions and 263 deletions

View File

@@ -1,34 +1,38 @@
from datetime import datetime
from typing import Literal
from pydantic import BaseModel
ActionType = Literal["view", "edit"]
ScopeType = Literal["site"]
class PermissionGrantRequest(BaseModel):
authentik_sub: str
email: str | None = None
display_name: str | None = None
scope_type: str
scope_type: ScopeType
scope_id: str
system: str
module: str | None = None
action: str
action: ActionType
class PermissionRevokeRequest(BaseModel):
authentik_sub: str
scope_type: str
scope_type: ScopeType
scope_id: str
system: str
module: str | None = None
action: str
action: ActionType
class PermissionItem(BaseModel):
scope_type: str
scope_type: ScopeType
scope_id: str
system: str | None = None
module: str
action: str
action: ActionType
class PermissionSnapshotResponse(BaseModel):
@@ -41,11 +45,11 @@ class DirectPermissionRow(BaseModel):
authentik_sub: str
email: str | None = None
display_name: str | None = None
scope_type: str
scope_type: ScopeType
scope_id: str
system: str | None = None
module: str | None = None
action: str
action: ActionType
created_at: datetime