142 lines
2.6 KiB
TypeScript
142 lines
2.6 KiB
TypeScript
import { Claim } from "./claims";
|
|
|
|
export const rules: Record<
|
|
string,
|
|
{ claims: Claim[]; hiddenFields: Record<string, Array<string>> }
|
|
> = {
|
|
tester: {
|
|
claims: [
|
|
"user:read",
|
|
"user:write",
|
|
"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",
|
|
"config:read",
|
|
"config:write",
|
|
"mail:all",
|
|
"view:read",
|
|
"view:write",
|
|
"view:delete",
|
|
],
|
|
hiddenFields: {
|
|
orgs: ["__v"],
|
|
permits: ["__v"],
|
|
rts: ["__v"],
|
|
tasks: ["__v"],
|
|
users: ["__v"],
|
|
},
|
|
},
|
|
admin: {
|
|
claims: [
|
|
"user:read",
|
|
"user:write",
|
|
"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",
|
|
"config:read",
|
|
"config:write",
|
|
"mail:all",
|
|
"view:read",
|
|
"view:write",
|
|
"view:delete",
|
|
],
|
|
hiddenFields: {
|
|
orgs: ["__v"],
|
|
permits: ["__v"],
|
|
rts: ["__v"],
|
|
tasks: ["__v"],
|
|
users: ["__v"],
|
|
},
|
|
},
|
|
builder: {
|
|
claims: [
|
|
"permit:read",
|
|
"file:upload",
|
|
"file:download",
|
|
"org:read",
|
|
"config:read",
|
|
],
|
|
hiddenFields: {
|
|
orgs: ["__v", "isClient", "name"],
|
|
permits: ["__v"],
|
|
rts: ["__v"],
|
|
tasks: ["__v"],
|
|
users: ["__v"],
|
|
},
|
|
},
|
|
staff: {
|
|
claims: [
|
|
"org:read",
|
|
"org:write",
|
|
"org:delete",
|
|
"permit:read",
|
|
"permit:write",
|
|
"permit:delete",
|
|
"file:upload",
|
|
"file:download",
|
|
"file:delete",
|
|
],
|
|
hiddenFields: {
|
|
orgs: [],
|
|
permits: [],
|
|
rts: [],
|
|
tasks: [],
|
|
users: [],
|
|
},
|
|
},
|
|
supervisor: {
|
|
claims: [
|
|
"user:read",
|
|
"org:read",
|
|
"org:write",
|
|
"org:delete",
|
|
"permit:read",
|
|
"permit:write",
|
|
"permit:delete",
|
|
"file:upload",
|
|
"file:download",
|
|
"file:delete",
|
|
],
|
|
hiddenFields: {
|
|
orgs: [],
|
|
permits: [],
|
|
rts: [],
|
|
tasks: [],
|
|
users: [],
|
|
},
|
|
},
|
|
};
|
|
|
|
export const roles = Object.keys(rules) as [
|
|
keyof typeof rules,
|
|
...(keyof typeof rules)[]
|
|
];
|