From d73304819347cd22ce1b15dab8db1dab098df132 Mon Sep 17 00:00:00 2001 From: Jan-Hendrik Willms <tleilax+studip@gmail.com> Date: Tue, 6 Sep 2022 10:45:37 +0000 Subject: [PATCH] fix role detection for MvvPerm::getRoles(), fixes #1546 Closes #1546 Merge request studip/studip!966 --- lib/classes/MvvPerm.php | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/lib/classes/MvvPerm.php b/lib/classes/MvvPerm.php index 918375da771..702dfd06827 100644 --- a/lib/classes/MvvPerm.php +++ b/lib/classes/MvvPerm.php @@ -534,20 +534,20 @@ class MvvPerm { /** * * - * @param type $user_id + * @param string $user_id * @return */ public static function getRoles($user_id) { - if (!self::$roles[$user_id]) { - $assigned = RolePersistence::getAssignedRoles($user_id); - foreach (RolePersistence::getAssignedRoles($user_id) as $role_id => $role) { - if (substr_compare($role->rolename, 'MVV', 1, 3, true)) { - self::$roles[$user_id][] = $role; + if (!isset(self::$roles[$user_id])) { + self::$roles[$user_id] = array_filter( + RolePersistence::getAssignedRoles($user_id), + function ($role) { + return stripos($role->rolename, 'mvv') === 0; } - } + ); } - return (self::$roles[$user_id] ?: []); + return self::$roles[$user_id]; } /** -- GitLab