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 以及数据库中已经保存的角色数据。