47 lines
1.7 KiB
Markdown
47 lines
1.7 KiB
Markdown
# Frontend Handoff(Role-Site 模型)
|
||
|
||
## 目標
|
||
前端只實作新模型,不再使用舊 `permission_groups` / `module-action` 流程。
|
||
|
||
## 主要頁面
|
||
1. 公司管理(CRUD)
|
||
- 欄位:`company_key`, `name`, `status`
|
||
- 詳情頁需顯示底下 `sites` 列表
|
||
|
||
2. 站台管理(CRUD)
|
||
- 欄位:`site_key`, `company_key`, `display_name`, `domain`, `status`
|
||
- 站台詳情需顯示:
|
||
- 此站台綁定的 `roles`
|
||
- 此站台包含的 `users`
|
||
|
||
3. 系統管理(唯讀 + 同步)
|
||
- 欄位:`system_key`, `name`, `status`
|
||
- 系統詳情需顯示底下 `roles` 列表
|
||
- 建立/修改/刪除在 Keycloak 處理,member 後台提供「同步 Keycloak」按鈕
|
||
- 所有資料列表頁不自動同步;需由使用者按下「同步」按鈕才觸發。
|
||
|
||
4. 角色管理(DB 關聯為主)
|
||
- 欄位:`role_key`, `system_key`, `name`, `description`, `status`
|
||
- 關聯操作:指派到 Site(新增/刪除 `site_roles`)
|
||
- 需支援在「角色頁」直接多選站台並儲存(不必切到站台頁)。
|
||
|
||
5. 會員管理(CRUD)
|
||
- 欄位:`user_sub`, `username`, `email`, `display_name`, `is_active`, `status`
|
||
- 關聯操作:加入/移除 Site(新增/刪除 `user_sites`)
|
||
- 顯示推導角色(唯讀)
|
||
|
||
6. API Clients 管理(CRUD)
|
||
- 欄位:`client_key`, `name`, `status`, `allowed_origins`, `allowed_ips`, `allowed_paths`, `rate_limit_per_min`, `expires_at`
|
||
|
||
## 前端互動規則
|
||
- 角色不可直接綁會員(UI 不提供此操作)。
|
||
- Site 與 User 的關聯調整後,角色顯示即時刷新。
|
||
- 刪除操作一律二次確認,顯示影響提示。
|
||
|
||
## 驗收重點
|
||
- 看不到舊 permission group 流程。
|
||
- 可以完整做:
|
||
- Site 綁 Role
|
||
- User 綁 Site
|
||
- 顯示 User 推導角色
|