本卡屬 FR-132(母卡 CM-2510),A.3 判定層第 5 張。依賴:T-3.3。建議 model:fable。

這張卡做什麼(白話)

角色不分部門,指派才分部門(user_roles.org_unit_id)。定案判法是「範圍套在資料上」:掛在部門 X 的指派,在使用者碰的資料列部門落在 X 子樹內時有效;使用者本人所屬部門不參與判定。

這張卡做兩件事:① 有效指派取回時帶上指派部門的 path;② 新增 require_capability_on(cap, org_unit_id) 給單筆寫入用——某人在 A 部門是編輯、在 B 部門是唯讀,route 層會因 A 那筆放行 update,只有比對「是哪一筆指派給的這個能力點」才擋得住他改 B 的資料。部門隔離開關(D12)關著時,它等同 require_capability,升級無感。

在哪裡

~/Projects/Jedicogy/module/jedi-python-package/jedi-iam/jedi_iam/infra/repository/active_role_conditions.py:19-39      有效指派條件
~/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/infra/models/org_unit.py:17,32      org_units.path(例 /10/12/)
~/Projects/Jedicogy/module/jedi-python-package/jedi-iam/jedi_iam/authz/capability.py      新增 require_capability_on
~/Projects/Billows/Audit-Manager/compliance-manager-be/common/authz/__init__.py      主專案 re-export(主體域實作在套件,shim 不補邏輯)

怎麼做

要寫測試

驗收條件

手測