From df1b09ceea69d8ef1fb79579e048fa84559cd7fe Mon Sep 17 00:00:00 2001 From: "S.Leipold" <S.Leipold@sleipold.aditosoftware.local> Date: Wed, 8 Jan 2020 15:51:31 +0100 Subject: [PATCH] =?UTF-8?q?[Projekt:=20Entwicklung=20-=20Neon][TicketNr.:?= =?UTF-8?q?=201048120][L=C3=B6schen=20einer=20Rolle=20entfernt=20nicht=20d?= =?UTF-8?q?ie=20zugeh=C3=B6rigen=20Permissions]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../recordcontainers/jdito/onDelete.js | 22 ++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/entity/Role_entity/recordcontainers/jdito/onDelete.js b/entity/Role_entity/recordcontainers/jdito/onDelete.js index e80d3cd4bc..7ce344eda4 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 -- GitLab