/** * 权限码单一事实源(细粒度 domain:action)。 * 控制器 @RequirePermissions 与 seed 资源树共用,避免漂移。 */ export const Permissions = { tenant: { list: 'tenant:list', create: 'tenant:create', update: 'tenant:update', delete: 'tenant:delete', }, user: { list: 'user:list', create: 'user:create', update: 'user:update', delete: 'user:delete', resetPwd: 'user:reset-pwd', }, role: { list: 'role:list', create: 'role:create', update: 'role:update', delete: 'role:delete', assignResource: 'role:assign-resource', }, resource: { list: 'resource:list', create: 'resource:create', update: 'resource:update', delete: 'resource:delete', }, org: { list: 'org:list', create: 'org:create', update: 'org:update', delete: 'org:delete', }, dict: { list: 'dict:list', create: 'dict:create', update: 'dict:update', delete: 'dict:delete', }, config: { list: 'config:list', create: 'config:create', update: 'config:update', delete: 'config:delete', }, audit: { list: 'audit:list' }, loginLog: { list: 'login-log:list' }, } as const; /** 全部权限码扁平列表(seed 授权与资源生成用)。 */ export const ALL_PERMISSIONS: string[] = Object.values(Permissions).flatMap((m) => Object.values(m), );