UNPKG

@ra-libs/react-rbac

Version:

React admin RBAC front components and utils

31 lines 1.27 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.createRules = createRules; exports.createAbility = createAbility; const ability_1 = require("@casl/ability"); const pluralize_1 = require("pluralize"); function createRules(roles = []) { return roles.reduce((acc, role) => { return [ ...acc, ...role.permissions.map((permission) => { const subjectAsResource = (0, pluralize_1.isSingular)(permission.subject.toLowerCase()) ? (0, pluralize_1.plural)(permission.subject.toLowerCase()) : permission.subject.toLowerCase(); const rawRule = { action: permission.action, subject: permission.subject == 'all' ? 'all' : subjectAsResource, conditions: permission.conditions, inverted: permission.inverted || false, }; if (Array.isArray(permission.fields) && permission.fields.length > 0) rawRule.fields = permission.fields; return rawRule; }), ]; }, []); } function createAbility(rules) { return new ability_1.Ability(rules); } //# sourceMappingURL=index.js.map