import { Claim } from "./claims"; export const rules: Record< string, { claims: Claim[]; hiddenFields: Record> } > = { 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", "userConfig:read", "userConfig:write", "mail:all", "view:read", "view:write", "view:delete", "note:read", "note:write", "note:delete", "payment:read", "alert:read", "alert:write", "analytics:read", ], 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", "userConfig:read", "userConfig:write", "mail:all", "view:read", "view:write", "view:delete", "note:read", "note:write", "note:delete", "payment:read", "alert:read", "alert:write", "analytics:read", ], hiddenFields: { orgs: ["__v"], permits: ["__v"], rts: ["__v"], tasks: ["__v"], users: ["__v"], }, }, team: { claims: [ "user:read", "org:read", "permit:read", "permit:write", "file:upload", "file:download", "rts:read", "rts:write", "task:read", "task:write", "notification:read", "notification:delete", "config:read", "userConfig:read", "userConfig:write", "mail:all", "view:read", "view:write", "view:delete", "note:read", "note:write", "note:delete", "payment:read", "alert:read", "alert:write", "analytics:read", ], hiddenFields: { orgs: ["__v"], permits: ["__v"], rts: ["__v"], tasks: ["__v"], users: ["__v"], }, }, client: { claims: [ "user:read", "permit:read", "permit:write", "file:upload", "file:download", "file:delete", "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", "payment:read", "alert:read", "alert:write", "userConfig:read", "userConfig:write", ], hiddenFields: { orgs: ["__v"], permits: ["__v"], rts: ["__v"], tasks: ["__v"], users: ["__v"], }, }, bot: { claims: ["file:download", "note:write", "rts:read", "rts: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)[] ];