mirror of
https://github.com/strapi/strapi.git
synced 2025-08-09 09:14:49 +00:00
Use AbilityBuilder instead of defineAbility, fix content-manager::create route
Signed-off-by: Convly <jean-sebastien.herbaux@epitech.eu>
This commit is contained in:
parent
8f7da9674c
commit
c11e6dfa88
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
const _ = require('lodash');
|
const _ = require('lodash');
|
||||||
const { map, filter, each } = require('lodash/fp');
|
const { map, filter, each } = require('lodash/fp');
|
||||||
const { defineAbility } = require('@casl/ability');
|
const { AbilityBuilder, Ability } = require('@casl/ability');
|
||||||
|
|
||||||
module.exports = conditionProvider => ({
|
module.exports = conditionProvider => ({
|
||||||
/**
|
/**
|
||||||
@ -24,14 +24,16 @@ module.exports = conditionProvider => ({
|
|||||||
* @returns {function(*, *): Promise<Ability>}
|
* @returns {function(*, *): Promise<Ability>}
|
||||||
*/
|
*/
|
||||||
generateAbilityCreatorFor(user) {
|
generateAbilityCreatorFor(user) {
|
||||||
return async (permissions, options) =>
|
return async (permissions, options) => {
|
||||||
defineAbility(async can => {
|
const { can, build } = new AbilityBuilder(Ability);
|
||||||
const registerFn = this.createRegisterFunction(can);
|
const registerFn = this.createRegisterFunction(can);
|
||||||
|
|
||||||
for (const permission of permissions) {
|
for (const permission of permissions) {
|
||||||
await this.evaluatePermission({ permission, user, options, registerFn });
|
await this.evaluatePermission({ permission, user, options, registerFn });
|
||||||
}
|
}
|
||||||
});
|
|
||||||
|
return build();
|
||||||
|
};
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -159,7 +159,7 @@ module.exports = {
|
|||||||
throw strapi.errors.forbidden();
|
throw strapi.errors.forbidden();
|
||||||
}
|
}
|
||||||
|
|
||||||
const sanitize = e => pm.sanitize(e, { subject: ACTIONS.create });
|
const sanitize = e => pm.sanitize(e, { subject: model });
|
||||||
|
|
||||||
const userId = user.id;
|
const userId = user.id;
|
||||||
const { data, files } = ctx.is('multipart') ? parseMultipartBody(ctx) : { data: body };
|
const { data, files } = ctx.is('multipart') ? parseMultipartBody(ctx) : { data: body };
|
||||||
|
Loading…
x
Reference in New Issue
Block a user