portal-auth P4(#24 #25):admin 帳號+庫管理頁+last-admin 鎖死保護(不 merge,待總管審) (#53)
This commit was merged in pull request #53.
This commit is contained in:
@@ -102,10 +102,30 @@
|
||||
|
||||
## P4 — admin 頁+工作流顯示(design §6)|觸碰:`cypher-executor/`
|
||||
|
||||
- [ ] 帳號管理頁(admin-only nav):列表/新增/停用/重設密碼+每帳號庫權限勾選
|
||||
- [ ] 庫目錄管理(登記/停用庫)
|
||||
- [ ] 工作流頁(唯讀 list+最近執行;`PORTAL_SHOW_WORKFLOWS` 預設 admin;不開 trigger)
|
||||
- [x] 帳號管理頁(admin-only nav):列表/新增/停用/重設密碼+每帳號庫權限勾選
|
||||
- 實作註(2026-07-14):`portal-ui.ts` 加「管理」頁(v-admin,nav 只對 role=admin 顯示,
|
||||
真閘=/portal/admin/* role 閘 403)。新增未帶密碼 → server `generatePassword` 一次性
|
||||
密碼**只在畫面顯示一次**(otpbox,關閉即逝;server 只存 hash);每帳號庫勾選含
|
||||
`["*"]` 全庫選項(勾選連動停用個別庫框);可勾清單=庫目錄啟用中 ∪ general ∪ 該帳號
|
||||
既有授權(目錄外舊授權不憑空消失)。admin API P2 已交付不重做;本波補
|
||||
**last-admin 鎖死保護**(總管派工明定,design 未明寫——PATCH 停用/降級「最後一個
|
||||
active admin」→ 409;只在目標是 active admin 且 patch 會使其失格時多打一次 list)。
|
||||
- [x] 庫目錄管理(登記/停用庫)
|
||||
- 同頁第二區:登記(name/display_name/description)+停用/啟用+ `graph_source`
|
||||
圖譜來源標記(D-4,P3 已有 API,本波補 UI)。
|
||||
- [x] 工作流頁(唯讀 list+最近執行;`PORTAL_SHOW_WORKFLOWS` 預設 admin;不開 trigger)
|
||||
- **P3 已交付**(`/portal/data/workflows` route+v-workflows 頁+D-8 閘),P4 沿用零改動。
|
||||
- **驗收**:admin 全流程「發帳號→授庫→同仁登入查詢→停用」在 UI 走通;一般用戶看不到 admin 頁與(預設下)工作流頁
|
||||
- 單元:`tests/portal-admin.test.ts` 14 項(鎖死保護含「另一 admin 是 disabled 不算數」
|
||||
「停用一般 user 不多打 list」;一次性密碼/reset 明碼不進 KBDB body;HTML 殼加 admin 頁後
|
||||
仍零租戶字串/零 /kbdb//零 API key/零 Mira)。cypher 全套 168/169(唯一失敗=executor
|
||||
「不存在的零件」pre-existing);kbdb 20/20;兩包 tsc 0;dry-run 打包過;inline JS
|
||||
node --check 過(2 段)。
|
||||
- 端到端:本機隔離雙 worker(9790/9791,demo 8787/8788 不碰)**41/41 全綠**——bootstrap→
|
||||
admin 建帳號拿一次性密碼→新 user 登入→勾庫後**同一 session 搜尋範圍即時變化**(1 筆→2 筆、
|
||||
越庫 404→200)→停用 session 立即失效→重設密碼舊密 401 新密 200→last-admin 409(含降級
|
||||
即時生效:原 admin session 打 admin API 變 403)→一般 user 打 admin API 403。
|
||||
- leo21c 線上面=部署後驗(gated wrangler 直推,B 類流程)。
|
||||
- **工程量**:中(約 1 個 CC 工作天)
|
||||
|
||||
---
|
||||
|
||||
Reference in New Issue
Block a user