Files
pole-book/server/node_modules/@strapi/permissions/dist/domain/permission/index.mjs

37 lines
1.1 KiB
JavaScript

import _ from 'lodash/fp';
const PERMISSION_FIELDS = [
'action',
'subject',
'properties',
'conditions'
];
const sanitizePermissionFields = _.pick(PERMISSION_FIELDS);
/**
* Creates a permission with default values for optional properties
*/ const getDefaultPermission = ()=>({
conditions: [],
properties: {},
subject: null
});
/**
* Create a new permission based on given attributes
*
* @param {object} attributes
*/ const create = _.pipe(_.pick(PERMISSION_FIELDS), _.merge(getDefaultPermission()));
/**
* Add a condition to a permission
*/ const addCondition = _.curry((condition, permission)=>{
const { conditions } = permission;
const newConditions = Array.isArray(conditions) ? _.uniq(conditions.concat(condition)) : [
condition
];
return _.set('conditions', newConditions, permission);
});
/**
* Gets a property or a part of a property from a permission.
*/ const getProperty = _.curry((property, permission)=>_.get(`properties.${property}`, permission));
export { addCondition, create, getProperty, sanitizePermissionFields };
//# sourceMappingURL=index.mjs.map