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.create',
'role.update', 'role.update',
'role.delete', 'role.delete',
'permissions.create',
'permissions.update',
'permissions.delete',
]; ];
const getEventMap = (defaultEvents) => { const getEventMap = (defaultEvents) => {

View File

@ -44,9 +44,12 @@ const deleteByRolesIds = async (rolesIds) => {
* @returns {Promise<array>} * @returns {Promise<array>}
*/ */
const deleteByIds = async (ids) => { const deleteByIds = async (ids) => {
const result = [];
for (const id of ids) { 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); 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') .query('admin::permission')
.update({ where: params, data: attributes }); .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(); await getService('metrics').sendDidUpdateRolePermissions();
} }
strapi.eventHub.emit(
'role.permissions',
permissionsToReturn.map(permissionDomain.sanitizePermissionFields)
);
return permissionsToReturn; return permissionsToReturn;
}; };