diff --git a/packages/core/admin/ee/server/services/audit-logs.js b/packages/core/admin/ee/server/services/audit-logs.js index 405f886e91..0af08ed84e 100644 --- a/packages/core/admin/ee/server/services/audit-logs.js +++ b/packages/core/admin/ee/server/services/audit-logs.js @@ -23,6 +23,9 @@ const defaultEvents = [ 'role.create', 'role.update', 'role.delete', + 'permissions.create', + 'permissions.update', + 'permissions.delete', ]; const getEventMap = (defaultEvents) => { diff --git a/packages/core/admin/server/services/permission/queries.js b/packages/core/admin/server/services/permission/queries.js index 2dfd476340..8184cbaa91 100644 --- a/packages/core/admin/server/services/permission/queries.js +++ b/packages/core/admin/server/services/permission/queries.js @@ -44,9 +44,12 @@ const deleteByRolesIds = async (rolesIds) => { * @returns {Promise} */ 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; }; /** diff --git a/packages/core/admin/server/services/role.js b/packages/core/admin/server/services/role.js index 261d8e2ce2..a8a5671e8d 100644 --- a/packages/core/admin/server/services/role.js +++ b/packages/core/admin/server/services/role.js @@ -364,11 +364,6 @@ const assignPermissions = async (roleId, permissions = []) => { await getService('metrics').sendDidUpdateRolePermissions(); } - strapi.eventHub.emit( - 'role.permissions', - permissionsToReturn.map(permissionDomain.sanitizePermissionFields) - ); - return permissionsToReturn; };