mirror of
https://github.com/strapi/strapi.git
synced 2025-09-27 01:09:49 +00:00
Creating new events for the permissions and handle them on the service level
This commit is contained in:
parent
b158657dc6
commit
e4a9fd95f3
@ -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) => {
|
||||||
|
@ -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;
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -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;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user