Files
permit-api/src/utils/roles.ts
2025-06-07 14:59:22 +05:30

149 lines
2.8 KiB
TypeScript

import { Claim } from "./claims";
export const rules: Record<
string,
{ claims: Claim[]; hiddenFields: Record<string, Array<string>> }
> = {
superAdmin: {
claims: [
"user:read",
"user:write",
"user:delete",
"org:read",
"org:write",
"org:delete",
"permit:read",
"permit:write",
"permit:delete",
"file:upload",
"file:download",
"file:delete",
"rts:read",
"rts:write",
"rts:delete",
"task:read",
"task:write",
"task:delete",
"notification:read",
"notification:write",
"notification:delete",
"config:read",
"config:write",
"mail:all",
"view:read",
"view:write",
"view:delete",
"note:read",
"note:write",
"note:delete",
],
hiddenFields: {
orgs: ["__v"],
permits: ["__v"],
rts: ["__v"],
tasks: ["__v"],
users: ["__v"],
},
},
admin: {
claims: [
"user:read",
"user:write",
"org:read",
"permit:read",
"permit:write",
"file:upload",
"file:download",
"file:delete",
"rts:read",
"rts:write",
"rts:delete",
"task:read",
"task:write",
"task:delete",
"notification:read",
"notification:write",
"notification:delete",
"config:read",
"config:write",
"mail:all",
"view:read",
"view:write",
"view:delete",
"note:read",
"note:write",
"note:delete",
],
hiddenFields: {
orgs: ["__v"],
permits: ["__v"],
rts: ["__v"],
tasks: ["__v"],
users: ["__v"],
},
},
team: {
claims: [
"org:read",
"permit:read",
"permit:write",
"file:upload",
"file:download",
"rts:read",
"rts:write",
"task:read",
"task:write",
"notification:read",
"notification:delete",
"config:read",
"mail:all",
"view:read",
"view:write",
"view:delete",
"note:read",
"note:write",
"note:delete",
],
hiddenFields: {
orgs: ["__v"],
permits: ["__v"],
rts: ["__v"],
tasks: ["__v"],
users: ["__v"],
},
},
client: {
claims: [
"permit:read",
"permit:write",
"file:upload",
"file:download",
"org:read",
"rts:read",
"rts:write",
"notification:read",
"notification:write",
"view:read",
"view:write",
"view:delete",
"ctask:read",
"ctask:write",
"ctask:delete",
"note:read",
"note:write",
],
hiddenFields: {
orgs: ["__v"],
permits: ["__v"],
rts: ["__v"],
tasks: ["__v"],
users: ["__v"],
},
},
};
export const roles = Object.keys(rules) as [
keyof typeof rules,
...(keyof typeof rules)[]
];