mirror of
https://github.com/strapi/strapi.git
synced 2025-08-08 08:46:42 +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 { map, filter, each } = require('lodash/fp');
|
||||
const { defineAbility } = require('@casl/ability');
|
||||
const { AbilityBuilder, Ability } = require('@casl/ability');
|
||||
|
||||
module.exports = conditionProvider => ({
|
||||
/**
|
||||
@ -24,14 +24,16 @@ module.exports = conditionProvider => ({
|
||||
* @returns {function(*, *): Promise<Ability>}
|
||||
*/
|
||||
generateAbilityCreatorFor(user) {
|
||||
return async (permissions, options) =>
|
||||
defineAbility(async can => {
|
||||
const registerFn = this.createRegisterFunction(can);
|
||||
return async (permissions, options) => {
|
||||
const { can, build } = new AbilityBuilder(Ability);
|
||||
const registerFn = this.createRegisterFunction(can);
|
||||
|
||||
for (const permission of permissions) {
|
||||
await this.evaluatePermission({ permission, user, options, registerFn });
|
||||
}
|
||||
});
|
||||
for (const permission of permissions) {
|
||||
await this.evaluatePermission({ permission, user, options, registerFn });
|
||||
}
|
||||
|
||||
return build();
|
||||
};
|
||||
},
|
||||
|
||||
/**
|
||||
|
@ -159,7 +159,7 @@ module.exports = {
|
||||
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 { data, files } = ctx.is('multipart') ? parseMultipartBody(ctx) : { data: body };
|
||||
|
Loading…
x
Reference in New Issue
Block a user