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

42 lines
1.2 KiB
JavaScript

'use strict';
var _ = require('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));
exports.addCondition = addCondition;
exports.create = create;
exports.getProperty = getProperty;
exports.sanitizePermissionFields = sanitizePermissionFields;
//# sourceMappingURL=index.js.map