95 lines
3.0 KiB
Markdown
95 lines
3.0 KiB
Markdown
# 組織與會員管理規劃(給前端/後端協作)
|
||
|
||
## 1. 目前狀態(你現在看到空白是正常)
|
||
- 已完成:
|
||
- Authentik 登入
|
||
- `/me` 基本個人資料
|
||
- 權限 grant/revoke 與 snapshot
|
||
- 尚未完成:
|
||
- 公司組織(Organization)CRUD
|
||
- 會員(Member)清單/新增/編輯/停用
|
||
- 會員與組織關聯管理
|
||
|
||
## 2. 建議產品資訊架構(IA)
|
||
- `我的資料`:目前登入者基本資訊、登出
|
||
- `我的權限`:目前登入者權限快照
|
||
- `組織管理`:公司清單、建立公司、編輯公司、狀態切換
|
||
- `會員管理`:會員清單、邀請/建立會員、編輯會員、停用會員、指派組織
|
||
- `權限管理`:保留現有 grant/revoke(可作為管理員進階頁)
|
||
|
||
## 3. 後端 API(v1,已開)
|
||
|
||
### Organization(admin)
|
||
- `GET /admin/organizations`
|
||
- `POST /admin/organizations`
|
||
- `GET /admin/organizations/{org_id}`
|
||
- `PATCH /admin/organizations/{org_id}`
|
||
- `POST /admin/organizations/{org_id}/activate`
|
||
- `POST /admin/organizations/{org_id}/deactivate`
|
||
|
||
### Member(admin)
|
||
- `GET /admin/members`
|
||
- `POST /admin/members`
|
||
- `GET /admin/members/{member_id}`
|
||
- `PATCH /admin/members/{member_id}`
|
||
- `POST /admin/members/{member_id}/activate`
|
||
- `POST /admin/members/{member_id}/deactivate`
|
||
|
||
### Member x Organization(admin)
|
||
- `GET /admin/members/{member_id}/organizations`
|
||
- `POST /admin/members/{member_id}/organizations/{org_id}`
|
||
- `DELETE /admin/members/{member_id}/organizations/{org_id}`
|
||
|
||
### Internal 查詢 API(給其他系統)
|
||
- `GET /internal/members`
|
||
- `GET /internal/members/by-sub/{authentik_sub}`
|
||
- `GET /internal/organizations`
|
||
- `GET /internal/organizations/by-code/{org_code}`
|
||
- `GET /internal/members/{member_id}/organizations`
|
||
|
||
## 4. 建議資料表(最小可行)
|
||
- `organizations`
|
||
- `id` (uuid)
|
||
- `org_code` (unique)
|
||
- `name`
|
||
- `tax_id` (nullable)
|
||
- `status` (`active|inactive`)
|
||
- `created_at`, `updated_at`
|
||
- `members`
|
||
- `id` (uuid)
|
||
- `authentik_sub` (unique)
|
||
- `email`
|
||
- `display_name`
|
||
- `status` (`active|inactive`)
|
||
- `created_at`, `updated_at`
|
||
- `member_organizations`
|
||
- `member_id`
|
||
- `organization_id`
|
||
- unique(`member_id`, `organization_id`)
|
||
|
||
## 5. 前端頁面需求(給另一個 AI)
|
||
- `/admin/organizations`
|
||
- 表格 + 查詢 + 新增 Dialog + 編輯 Dialog + 啟停用
|
||
- `/admin/members`
|
||
- 表格 + 查詢 + 新增 Dialog + 編輯 Dialog + 啟停用
|
||
- `/admin/members/:id/organizations`
|
||
- 左側會員資訊,右側組織綁定清單 + 加入/移除
|
||
|
||
## 6. 權限模型(建議)
|
||
- `org.manage`:組織管理
|
||
- `member.manage`:會員管理
|
||
- `permission.manage`:權限管理
|
||
|
||
可映射到現有權限欄位:
|
||
- `scope_type=global`
|
||
- `scope_id=member-center`
|
||
- `module=organization|member|permission`
|
||
- `action=view|create|update|deactivate|grant|revoke`
|
||
|
||
## 7. 驗收標準
|
||
- 可以建立/修改/停用組織
|
||
- 可以建立/修改/停用會員
|
||
- 可以將會員加入/移出組織
|
||
- UI 顯示成功/失敗訊息,並可重新整理資料
|
||
- 所有管理 API 都有管理員金鑰驗證(`X-Client-Key` + `X-API-Key`)
|