roles.ts
角色設定項目的欄位和範本預設設定。
config/roles.ts 匯出一個 Record<string, { name: LocalizedText; description: LocalizedText; capabilities: StaticCapabilityKey[] }> 物件,每個 Key 對應一個角色。角色 Key 可以自行定義,guest、register、premium 和 admin 只是範本示例,並非固定欄位。Key 可以新增、刪除或修改,沒有角色時可以匯出空物件。
檔案末尾匯出的 Role 聯集型別,會依設定物件中的 Key 自動產生。修改角色 Key 後,還要同步修改產品設定、帳號資料和存取控制程式碼中的引用。
角色 Key
角色 Key 是非空字串。建議使用簡短、穩定的英文識別字,例如 member、operator 或 admin,需要顯示給使用者的名稱應寫在 name 中。
角色紀錄
每個角色 Key 對應一筆角色紀錄,格式如下:
Prop
Type
capabilities 可以填入完整的能力 Key,例如 user.view,也可以填入群組路徑,例如 user。填入群組路徑後,這個角色會取得該群組下所有由角色授予的能力。
範本預設設定
| 角色 Key | name.value | description.value | capabilities |
|---|---|---|---|
guest | Guest | Guest user | [] |
register | Registered | Registered user | user、ticket |
premium | Paid Member | Member with an active paid product grant | user、ticket |
admin | Admin | Admin user | admin、user、ticket |
這些紀錄只是示範角色設定的寫法。刪除或更換示例角色時,要同時處理 products.ts,以及資料庫中已儲存的角色資料。