diff --git a/entity/Role_entity/recordcontainers/jdito/onDelete.js b/entity/Role_entity/recordcontainers/jdito/onDelete.js index e80d3cd4bc4cf8b0ddbf73419497ecf53ba9b93c..7ce344eda42872669cc7b4ecc0b68eb41abcbe5e 100644 --- a/entity/Role_entity/recordcontainers/jdito/onDelete.js +++ b/entity/Role_entity/recordcontainers/jdito/onDelete.js @@ -2,7 +2,23 @@ import("Permission_lib"); import("system.tools"); import("system.vars"); -var name = vars.get("$field.ROLENAME"); // field got prefix "CUSTOM_" already +var targetRole = vars.get("$field.ROLENAME"); // field got prefix "CUSTOM_" already +var usersWithTargetRole = tools.getUsersWithRole(targetRole); + // delete permissions linked to this role -PermissionUtil.deleteEverythingLinkedToRole(name); -tools.deleteRole(name); \ No newline at end of file +PermissionUtil.deleteEverythingLinkedToRole(targetRole); + +// remove role from all users with this role +for each (let userWithTargetRole in usersWithTargetRole) { + var user = tools.getUser(userWithTargetRole); + var roles = tools.getRoles(userWithTargetRole); + + roles = roles.filter(function(role) { + return role != targetRole; + }); + user[tools.ROLES] = roles; + + tools.updateUser(user); +} + +tools.deleteRole(targetRole); \ No newline at end of file