{"version":3,"file":"rbac.cjs","sources":["../../../src/rbac/rbac.ts"],"sourcesContent":["import { WithAccessControlMetadata } from '../types/accesscontrol';\nimport { CurrentUserDTO } from '../types/config';\n\nexport interface CurrentUser extends Omit<CurrentUserDTO, 'lightTheme'> {}\n\nexport function userHasPermission(action: string, user: CurrentUser): boolean {\n  return !!user.permissions?.[action];\n}\n\nexport function userHasPermissionInMetadata(action: string, object: WithAccessControlMetadata): boolean {\n  return !!object.accessControl?.[action];\n}\n\nexport function userHasAllPermissions(actions: string[], user: CurrentUser) {\n  return actions.every((action) => userHasPermission(action, user));\n}\n\nexport function userHasAnyPermission(actions: string[], user: CurrentUser) {\n  return actions.some((action) => userHasPermission(action, user));\n}\n"],"names":[],"mappings":";;;;;AAKO,SAAS,iBAAA,CAAkB,QAAgB,IAAA,EAA4B;AAL9E,EAAA,IAAA,EAAA;AAME,EAAA,OAAO,CAAC,EAAA,CAAC,EAAA,GAAA,IAAA,CAAK,WAAA,KAAL,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAmB,MAAA,CAAA,CAAA;AAC9B;AAEO,SAAS,2BAAA,CAA4B,QAAgB,MAAA,EAA4C;AATxG,EAAA,IAAA,EAAA;AAUE,EAAA,OAAO,CAAC,EAAA,CAAC,EAAA,GAAA,MAAA,CAAO,aAAA,KAAP,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAuB,MAAA,CAAA,CAAA;AAClC;AAEO,SAAS,qBAAA,CAAsB,SAAmB,IAAA,EAAmB;AAC1E,EAAA,OAAO,QAAQ,KAAA,CAAM,CAAC,WAAW,iBAAA,CAAkB,MAAA,EAAQ,IAAI,CAAC,CAAA;AAClE;AAEO,SAAS,oBAAA,CAAqB,SAAmB,IAAA,EAAmB;AACzE,EAAA,OAAO,QAAQ,IAAA,CAAK,CAAC,WAAW,iBAAA,CAAkB,MAAA,EAAQ,IAAI,CAAC,CAAA;AACjE;;;;;;;"}