26 lines
674 B
JavaScript
Raw Normal View History

'use strict';
const {
policy: { createPolicy },
2021-04-29 13:51:12 +02:00
} = require('@strapi/utils');
2021-09-24 09:04:44 +02:00
const { validateHasPermissionsInput } = require('../validation/policies/hasPermissions');
module.exports = createPolicy({
name: 'plugin::content-manager.hasPermissions',
validator: validateHasPermissionsInput,
handler(ctx, config = {}) {
const { actions = [], hasAtLeastOne = false } = config;
const {
state: { userAbility },
params: { model },
} = ctx;
const isAuthorized = hasAtLeastOne
2022-08-08 23:33:39 +02:00
? actions.some((action) => userAbility.can(action, model))
: actions.every((action) => userAbility.can(action, model));
2021-10-20 17:30:05 +02:00
return isAuthorized;
},
});