81 lines
2.9 KiB
TypeScript
81 lines
2.9 KiB
TypeScript
/**
|
||
* 权限码单一事实源(细粒度 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',
|
||
assignRole: 'user:assign-role',
|
||
kickSessions: 'user:kick-sessions',
|
||
lock: 'user:lock',
|
||
unlock: 'user:unlock',
|
||
},
|
||
role: {
|
||
list: 'role:list',
|
||
create: 'role:create',
|
||
update: 'role:update',
|
||
delete: 'role:delete',
|
||
assignResource: 'role:assign-resource',
|
||
assignOrg: 'role:assign-org',
|
||
},
|
||
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',
|
||
},
|
||
session: { list: 'session:list', kick: 'session:kick' },
|
||
notice: {
|
||
list: 'notice:list',
|
||
create: 'notice:create',
|
||
update: 'notice:update',
|
||
delete: 'notice:delete',
|
||
},
|
||
audit: { list: 'audit:list' },
|
||
loginLog: { list: 'login-log:list' },
|
||
// 服务机构端业务(C0 落地 agency/svcOrg/staff,其余为 C1–C4 预留)
|
||
agency: { view: 'agency:view', update: 'agency:update' },
|
||
svcOrg: { list: 'svc-org:list', config: 'svc-org:config', newNational: 'svc-org:new-national' },
|
||
staff: { list: 'staff:list', create: 'staff:create', update: 'staff:update', delete: 'staff:delete', groupAssign: 'staff:group-assign' },
|
||
elder: { list: 'elder:list', detail: 'elder:detail', create: 'elder:create', update: 'elder:update', statusChange: 'elder:status-change', import: 'elder:import', svcSave: 'elder:svc-save' },
|
||
plan: { create: 'plan:create', change: 'plan:change', detail: 'plan:detail', confirm: 'plan:confirm' },
|
||
order: { generate: 'order:generate', assign: 'order:assign', reassign: 'order:reassign', cancel: 'order:cancel', detail: 'order:detail', today: 'order:today' },
|
||
record: { checkin: 'record:checkin', checkout: 'record:checkout', itemSave: 'record:item-save', photoUpload: 'record:photo-upload', detail: 'record:detail' },
|
||
abnormal: { report: 'abnormal:report', list: 'abnormal:list', handle: 'abnormal:handle' },
|
||
qc: { pendingList: 'qc:pending-list', detail: 'qc:detail', pass: 'qc:pass', return: 'qc:return', exceptionLink: 'qc:exception-link' },
|
||
export: { export: 'export:export' },
|
||
} as const;
|
||
|
||
/** 全部权限码扁平列表(seed 授权与资源生成用)。 */
|
||
export const ALL_PERMISSIONS: string[] = Object.values(Permissions).flatMap((m) =>
|
||
Object.values(m),
|
||
);
|