feat(members): split username/display_name, sync updates to authentik, add password reset API and refresh docs
This commit is contained in:
@@ -1,29 +1,26 @@
|
||||
# member.ose.tw 架構總覽
|
||||
|
||||
## 1) 核心模型
|
||||
- 業務層級:`companies -> sites -> users`
|
||||
- 功能層級:`systems -> modules`
|
||||
- 權限核心:`permission_groups`(群組整合權限與成員)
|
||||
## 核心模型
|
||||
- 業務層:`companies -> sites -> users`
|
||||
- 功能層:`systems -> modules`
|
||||
- 權限層:`permission_groups`(群組中心)
|
||||
|
||||
## 2) 權限規則(固定)
|
||||
- `scope` 只允許:`site`
|
||||
- `action` 只允許:`view`、`edit`
|
||||
- `view`、`edit` 可同時勾選(多選)
|
||||
- 畫面顯示格式:`公司/站台`
|
||||
## 權限規則
|
||||
- `scope_type` 固定 `site`
|
||||
- `action` 僅 `view` / `edit`(可同時存在)
|
||||
- 權限透過群組下發給會員,不走細粒度 direct permission 主流程
|
||||
|
||||
## 3) 關聯關係(皆為多對多)
|
||||
- 群組 ⟷ 站台
|
||||
- 群組 ⟷ 系統
|
||||
- 群組 ⟷ 模組
|
||||
- 群組 ⟷ 會員
|
||||
## 後台安全線
|
||||
- 所有 `/admin/*` 需 Bearer token
|
||||
- 後端僅依 `ADMIN_REQUIRED_GROUPS` 判定可否進後台
|
||||
- 不在群組就算有網址、有 Authentik 帳號也會 403
|
||||
|
||||
## 4) 管理頁責任
|
||||
- 群組管理:群組基本資料 + 站台/系統/模組/會員 + action(view/edit)
|
||||
- 系統編輯頁:基本資料 + 所屬群組列表 + 涉及會員列表
|
||||
- 模組編輯頁:基本資料 + 所屬群組列表 + 涉及會員列表
|
||||
- 公司頁:基本資料 + 站台列表
|
||||
- 會員編輯頁:基本資料 + 所屬群組列表
|
||||
## 會員資料與 Authentik 對齊
|
||||
- `username`:登入帳號(可編輯,可同步)
|
||||
- `display_name`:顯示名稱(可編輯,可同步到 Authentik `name`)
|
||||
- `authentik_sub`:由 Authentik UID 回寫
|
||||
- `authentik_user_id`:保留 Authentik user id,供更新/密碼重設
|
||||
|
||||
## 5) 本輪範圍
|
||||
- 會員細粒度直接授權先暫停
|
||||
- 最終規格書(正式對外版)延後到專案完成後再整理
|
||||
## 密碼流程
|
||||
- 目前:後台可觸發重設密碼(產生臨時密碼)
|
||||
- SMTP 開通後:可再補「發送密碼設定/重設通知」自動化
|
||||
|
||||
Reference in New Issue
Block a user