issue #75 RBAC 授權儲存完整性決策鏈
這頁保留 RBAC grant storage 的 source。它不是權限模型全景;全景見 RBAC 授權權威與現況。
最終結論
tb_rbac_role_permission 需要唯一性約束與 idempotent seed,否則角色授權 UI / migration 重跑可能累積重複 grant,造成授權判斷與畫面數量不穩。
決策鏈
| 來源 | 內容 |
|---|---|
| #75 | 指出 tb_rbac_role_permission 缺 UNIQUE 約束。 |
| RBAC 授權權威與現況 | 後續 RBAC 模型統整為 route → feature → grant,grant 儲存成為單一權威資料。 |
現行 code / DB 錨點
| 目的 | 錨點 |
|---|---|
| grant 儲存表 | tb_rbac_role_permission |
| role permission seed | RBAC migrations 301-306 / 316 / 319 |
| 授權判斷 | ApiPermissionFilter.OnAuthorizationAsync |
| 角色授權 UI | EditRoleModal.vue |
注意事項
- 權限錯誤不一定是 code gate 錯;也可能是 grant 表資料重複或 seed 沒有 idempotent。
- 調整權限 seed 時,要同時確認唯一約束與重跑結果。