2020-06-09 11:48:49 +02:00
|
|
|
'use strict';
|
|
|
|
|
2020-06-08 11:01:20 +02:00
|
|
|
const adminActions = require('../admin-actions');
|
2020-06-02 17:59:57 +02:00
|
|
|
|
2020-06-08 15:13:26 +02:00
|
|
|
const registerPermissionActions = () => {
|
2020-06-09 19:00:57 +02:00
|
|
|
const { actionProvider } = strapi.admin.services.permission;
|
2020-06-08 11:01:20 +02:00
|
|
|
actionProvider.register(adminActions.actions);
|
2020-06-02 17:59:57 +02:00
|
|
|
};
|
2020-06-08 15:13:26 +02:00
|
|
|
|
|
|
|
const cleanPermissionInDatabase = async () => {
|
2020-06-11 10:54:26 +02:00
|
|
|
const { actionProvider } = strapi.admin.services.permission;
|
2020-06-08 15:13:26 +02:00
|
|
|
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();
|
|
|
|
};
|