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 e1a6bbd844
commit ccb99683b8
22 changed files with 361 additions and 207 deletions

View File

@@ -1,22 +1,17 @@
# Backend TaskPlan
## 待辦
- [ ] 重寫 `backend/scripts/init_schema.sql` 為乾淨重建版drop/recreate
- [ ] 刪除非必要舊表與舊權限模型(只留群組中心模型)
- [ ] 新增/調整查詢 API
- [ ] 系統明細關聯(群組、會員)
- [ ] 模組明細關聯(群組、會員)
- [ ] 公司底下站台列表
- [ ] 會員所屬群組列表
- [ ] action 驗證改為只允許 `view/edit`
- [ ] scope 驗證改為只允許 `site`
- [ ] 補齊 API 錯誤碼一致性400/404/409
- [ ] 補 Authentik SMTP 通知流程(密碼設定/重設寄信
- [ ] `/admin/members` 關鍵操作審計日誌
- [ ] 補更多 API 測試members username/password reset 路徑)
## 進行中
- [ ] 新 schema 與 API 契約對齊設計(以群組整合權限為中心
- [ ] 文件與程式持續對齊(避免規格漂移
## 已完成
- [x] 後端已具備 systems/modules/companies/sites/members/permission-groups 基礎 CRUD 能力
- [x] 本地開發環境(`.env.development`)可啟動並連線 DB
- [x] 管理 API 認證統一使用 `X-Client-Key` + `X-API-Key`
- [x] Authentik 會員同步流程已能在 upsert/update 路徑運作
- [x] `/admin/*` 改為 Bearer + admin 群組管控(`ADMIN_REQUIRED_GROUPS`
- [x] 管理 API 完成 systems/modules/companies/sites/members/permission-groups CRUD
- [x] 會員 upsert/update 可同步 Authentik
- [x] 會員資料新增 `username` 欄位,與 `display_name` 分離
- [x] 新增 `POST /admin/members/{authentik_sub}/password/reset`
- [x] DB 新增 `users.username`(含 migration 腳本)