本卡屬 FR-132(母卡 CM-2510),A.3 判定層第 8 張。依賴:T-3.4、T-3.6。建議 model:opus。
前端「指派」「檢查存取」「部門隔離設定」三頁需要的後端 API:① 指派 CRUD——一筆=誰 × 角色 × 範圍(租戶或部門)× 起訖;② 檢查存取——選一個人,列出他每個有效能力點來自哪個角色、哪條 pattern、哪個範圍、何時到期,結果必須與 API 實際放行逐項一致(吃同一個展開服務);③ 部門隔離開關——開啟前先產預覽清單(每位使用者在每張表會少看到幾筆、誰會整張表空掉),確認後才寫入並記稽核事件。
~/Projects/Jedicogy/module/jedi-python-package/jedi-iam/jedi_iam/infra/models/user_role.py:20-84 user_roles(org_unit_id、scope、starts_at、ends_at 已存在,不改結構)
~/Projects/Jedicogy/module/jedi-python-package/jedi-iam/jedi_iam/api/routing.py 新增端點
docs/claude/memory/reference_audit_event_logging_pattern.md 稽核事件埋點 pattern
docs/features/FR-132-2610-access-management/inventory/a1-d12-tables.md 預覽要算的表
created_user_name 等暱稱(審計欄位規範)。權限 iam.role-assignment.*(以 T-1.6 為準)。寫入後清該使用者相關快取(指派不進 Redis,但 flask.g 不受影響,確認無殘留)。{name, display_name, sources:[{role, pattern, scope, org_unit_name, ends_at}]},另標 super_admin、is_admin、平台管理員三種豁免;開了隔離時加「看得到哪些部門」。必須呼叫 T-3.3/T-3.4 的同一個函式,不另寫一套。tenants.org_unit_isolation 並記稽核事件;關閉不需預覽也記事件。require_capability 實際結果比對一致。