From 8c5a90d52e8f3ea8edb4ee2e24275c96119e07aa Mon Sep 17 00:00:00 2001 From: Peter Thienel <thienel@data-quest.de> Date: Tue, 6 Sep 2022 07:04:18 +0000 Subject: [PATCH] =?UTF-8?q?Resolve=20"Verhaltens=C3=A4nderung=20in=20RoleP?= =?UTF-8?q?ersistence::getAssignedRoleInstitutes()=20durch=20#1180"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Closes #1360 Merge request studip/studip!965 --- lib/classes/MvvPerm.php | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/lib/classes/MvvPerm.php b/lib/classes/MvvPerm.php index d7f3732cf74..918375da771 100644 --- a/lib/classes/MvvPerm.php +++ b/lib/classes/MvvPerm.php @@ -337,8 +337,8 @@ class MvvPerm { } if (count($institut_ids)) { $institutes_assigned_role = RolePersistence::getAssignedRoleInstitutes($user_id, $role->roleid); - // count($institutes_assigned_role) === 1 means global role... - if (count($institutes_assigned_role) === 1 + // count($institutes_assigned_role) === 0 means global role. + if (count($institutes_assigned_role) === 0 || count(array_intersect($institut_ids, $institutes_assigned_role))) { if (!$status) { $priv = intval(self::$privileges[$mvv_table]['default_table'][$role->rolename]); @@ -457,8 +457,8 @@ class MvvPerm { } if (count($institut_ids)) { $institutes_assigned_role = RolePersistence::getAssignedRoleInstitutes($user_id, $role->roleid); - // count($institutes_assigned_role) === 1 means global role... - if (count($institutes_assigned_role) === 1 + // count($institutes_assigned_role) === 0 means global role. + if (count($institutes_assigned_role) === 0 || count(array_intersect($institut_ids, $institutes_assigned_role))) { $priv = is_array($field) ? self::$privileges[$mvv_table]['fields'][$field[0]][$field[1]][$status][$role->rolename] @@ -617,7 +617,7 @@ class MvvPerm { break; } $institutes_assigned_role = RolePersistence::getAssignedRoleInstitutes($user_id, $role->roleid); - if (count($institutes_assigned_role) === 1) { + if (count($institutes_assigned_role) === 0) { // this role is globally defined for this user $institutes = []; break; -- GitLab