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。填入群組路徑後,這個角色會取得該群組下所有由角色授予的能力。

範本預設設定

角色 Keyname.valuedescription.valuecapabilities
guestGuestGuest user[]
registerRegisteredRegistered useruser、ticket
premiumPaid MemberMember with an active paid product grantuser、ticket
adminAdminAdmin useradmin、user、ticket

這些紀錄只是示範角色設定的寫法。刪除或更換示例角色時,要同時處理 products.ts,以及資料庫中已儲存的角色資料。