portal-auth P3 前置:graph 粗閘 helpers(D-4)+session 能力欄位+kbdb-proxy 透傳 library(P1 順延)
- portal.ts:export 共用 helpers(requirePortalUser/parseLibraries/kbdbFetch/run…) +graphSourceLibraries/hasGraphAccess/workflowsVisible;/portal/session 補 graph_allowed、workflows_visible(顯示提示,真閘在 /portal/data/* 路由層) - portal_library seed 加 graph_source slot;ensurePortalTemplates 冪等補舊 template 缺的 slots(updateRecord 對 template 外 slot 會 reject,不補就寫不進標記) - admin libraries PATCH 收 graph_source(boolean);toPublicLibrary 回 graph_source - kbdb-proxy /kbdb/search 與 /kbdb/entries 白名單加 library(tasks.md P1 順延一行) - PORTAL_SHOW_WORKFLOWS var(D-8,預設 admin) Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -69,12 +69,12 @@
|
||||
|
||||
## P3 — `/portal` UI:登入殼+搜尋頁+設定頁+scope enforce(design §1/§3.3/§5/§6)|觸碰:`cypher-executor/`
|
||||
|
||||
- [ ] `/portal` HTML 殼(重用 console 樣式/搜尋 view 抽共用 helper;`CONSOLE_BRAND` 品牌;零 Mira 字樣)
|
||||
- [ ] 未登入只見登入殼;登入後兩頁:搜尋(keyword/semantic/graph 三模式+source 溯源+卡片詳頁)+設定(改密碼/看自己權限/主題)
|
||||
- [ ] `/portal/data/*` server-side enforce:session→record→注入 `owner_id`+`library`;**前端絕不下發租戶字串**
|
||||
- [ ] 卡片詳頁逐筆驗 library(越庫 id 直讀 → 404)
|
||||
- [ ] graph 粗閘(D-4:無 graph 來源庫權限 → 模式不顯示+API 403)
|
||||
- [ ] 測試:curl 帶 user session 直打 data API 驗 filter 繞不過(=#24 驗收 3 的 server-side 證明)
|
||||
- [🔄] `/portal` HTML 殼(重用 console 樣式/搜尋 view 抽共用 helper;`CONSOLE_BRAND` 品牌;零 Mira 字樣)
|
||||
- [🔄] 未登入只見登入殼;登入後兩頁:搜尋(keyword/semantic/graph 三模式+source 溯源+卡片詳頁)+設定(改密碼/看自己權限/主題)
|
||||
- [🔄] `/portal/data/*` server-side enforce:session→record→注入 `owner_id`+`library`;**前端絕不下發租戶字串**
|
||||
- [🔄] 卡片詳頁逐筆驗 library(越庫 id 直讀 → 404)
|
||||
- [🔄] graph 粗閘(D-4:無 graph 來源庫權限 → 模式不顯示+API 403)
|
||||
- [🔄] 測試:curl 帶 user session 直打 data API 驗 filter 繞不過(=#24 驗收 3 的 server-side 證明)
|
||||
- **驗收**(=#24 驗收):leo21c `/portal` 可開;未登入只見登入殼;三模式+溯源可用;A 用戶(僅 general)搜不到 finance 內容——UI 與 curl 雙驗
|
||||
- **工程量**:大(1–1.5 個 CC 工作天,UI 是最大件)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user