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