Software: Apache/2.4.41 (Ubuntu). PHP/8.0.30 uname -a: Linux apirnd 5.4.0-204-generic #224-Ubuntu SMP Thu Dec 5 13:38:28 UTC 2024 x86_64 uid=33(www-data) gid=33(www-data) groups=33(www-data) Safe-mode: OFF (not secure) /var/www/html/wincloud_gateway/node_modules/strapi-admin/services/permission/ drwxr-xr-x | |
| Viewing file: Select action/file-type: 'use strict';
const { cloneDeep, has } = require('lodash/fp');
const { hooks } = require('strapi-utils');
const permissionDomain = require('../../domain/permission');
/**
* Create a hook map used by the permission Engine
*/
const createEngineHooks = () => ({
willEvaluatePermission: hooks.createAsyncSeriesHook(),
willRegisterPermission: hooks.createAsyncSeriesHook(),
});
/**
* Create a context from a domain {@link Permission} used by the WillEvaluate hook
* @param {Permission} permission
* @return {{readonly permission: Permission, addCondition(string): this}}
*/
const createWillEvaluateContext = permission => ({
get permission() {
return cloneDeep(permission);
},
addCondition(condition) {
Object.assign(permission, permissionDomain.addCondition(condition, permission));
return this;
},
});
/**
* Create a context from a casl Permission & some options
* @param caslPermission
* @param {object} options
* @param {Permission} options.permission
* @param {object} options.user
*/
const createWillRegisterContext = (caslPermission, { permission, user }) => ({
get permission() {
return cloneDeep(permission);
},
get user() {
return cloneDeep(user);
},
condition: {
and(rawConditionObject) {
if (!caslPermission.condition) {
Object.assign(caslPermission, { condition: { $and: [] } });
}
caslPermission.condition.$and.push(rawConditionObject);
return this;
},
or(rawConditionObject) {
if (!caslPermission.condition) {
Object.assign(caslPermission, { condition: { $and: [] } });
}
const orClause = caslPermission.condition.$and.find(has('$or'));
if (orClause) {
orClause.$or.push(rawConditionObject);
} else {
caslPermission.condition.$and.push({ $or: [rawConditionObject] });
}
return this;
},
},
});
module.exports = {
createEngineHooks,
createWillEvaluateContext,
createWillRegisterContext,
};
|
:: Command execute :: | |
--[ c99shell v. 2.5 [PHP 8 Update] [24.05.2025] | Generation time: 0.0208 ]-- |