Creating new events for the permissions and handle them on the service level

This commit is contained in:
Fernando Chavez 2022-12-21 13:12:22 +01:00
parent b158657dc6
commit e4a9fd95f3
3 changed files with 15 additions and 8 deletions

View File

@ -23,6 +23,9 @@ const defaultEvents = [
'role.create',
'role.update',
'role.delete',
'permissions.create',
'permissions.update',
'permissions.delete',
];
const getEventMap = (defaultEvents) => {

View File

@ -44,9 +44,12 @@ const deleteByRolesIds = async (rolesIds) => {
* @returns {Promise<array>}
*/
const deleteByIds = async (ids) => {
const result = [];
for (const id of ids) {
await strapi.query('admin::permission').delete({ where: { id } });
const queryResult = await strapi.query('admin::permission').delete({ where: { id } });
result.push(queryResult);
}
strapi.eventHub.emit('permissions.delete', { permissions: result });
};
/**
@ -61,7 +64,10 @@ const createMany = async (permissions) => {
createdPermissions.push(newPerm);
}
return permissionDomain.toPermission(createdPermissions);
const permissionsToReturn = permissionDomain.toPermission(createdPermissions);
strapi.eventHub.emit('permissions.create', { permissions: permissionsToReturn });
return permissionsToReturn;
};
/**
@ -75,7 +81,10 @@ const update = async (params, attributes) => {
.query('admin::permission')
.update({ where: params, data: attributes });
return permissionDomain.toPermission(updatedPermission);
const permissionToReturn = permissionDomain.toPermission(updatedPermission);
strapi.eventHub.emit('permissions.update', { permissions: permissionToReturn });
return permissionToReturn;
};
/**

View File

@ -364,11 +364,6 @@ const assignPermissions = async (roleId, permissions = []) => {
await getService('metrics').sendDidUpdateRolePermissions();
}
strapi.eventHub.emit(
'role.permissions',
permissionsToReturn.map(permissionDomain.sanitizePermissionFields)
);
return permissionsToReturn;
};