mirror of
https://github.com/strapi/strapi.git
synced 2025-07-27 19:10:01 +00:00
31 lines
967 B
JavaScript
31 lines
967 B
JavaScript
const adminActions = require('../admin-actions');
|
|
|
|
const registerPermissionActions = () => {
|
|
const actionProvider = strapi.admin.services.permission.provider;
|
|
actionProvider.register(adminActions.actions);
|
|
};
|
|
|
|
const cleanPermissionInDatabase = async () => {
|
|
const actionProvider = strapi.admin.services.permission.provider;
|
|
const dbPermissions = await strapi.admin.services.permission.find();
|
|
const allActionsMap = actionProvider.getAllByMap();
|
|
const permissionsToRemoveIds = [];
|
|
|
|
dbPermissions.forEach(perm => {
|
|
if (
|
|
!allActionsMap.has(perm.action) ||
|
|
(allActionsMap.get(perm.action).section === 'contentTypes' &&
|
|
!allActionsMap.get(perm.action).subjects.includes(perm.subject))
|
|
) {
|
|
permissionsToRemoveIds.push(perm.id);
|
|
}
|
|
});
|
|
|
|
await strapi.admin.services.permission.deleteByIds(permissionsToRemoveIds);
|
|
};
|
|
|
|
module.exports = async () => {
|
|
registerPermissionActions();
|
|
await cleanPermissionInDatabase();
|
|
};
|