add rts routes

This commit is contained in:
2025-01-21 11:54:09 +05:30
parent 7e3218f84e
commit a54541518c
15 changed files with 653 additions and 28 deletions

View File

@@ -13,4 +13,10 @@ export type Claim =
| "file:delete"
| "token:read"
| "token:write"
| "token:delete";
| "token:delete"
| "rts:read"
| "rts:write"
| "rts:delete"
| "task:read"
| "task:write"
| "task:delete";

View File

@@ -13,6 +13,7 @@ export function errorHandler(
if (error.validation) {
const errMsg = {
type: "validation_error",
path: error.validation[0].instancePath,
context: error.validationContext,
msg: error.validation[0].message,
params: error.validation[0].params,

92
src/utils/roles.ts Normal file
View File

@@ -0,0 +1,92 @@
import { Claim } from "./claims";
export const rules: Record<
string,
{ claims: Claim[]; hiddenFields: Record<string, Array<string>> }
> = {
admin: {
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",
],
hiddenFields: {
orgs: ["__v"],
permits: ["__v"],
rts: ["__v"],
tasks: ["__v"],
users: ["__v"],
},
},
builder: {
claims: ["permit:read", "file:upload", "file:download", "org: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)[]
];