Pierre Noël 0330aba229 clean permissions in db at startup
Signed-off-by: Pierre Noël <petersg83@gmail.com>
2020-07-08 11:05:07 +02:00

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();
};