diff --git a/includes/IPBAuth.php b/includes/IPBAuth.php index 2c386e1..861f320 100644 --- a/includes/IPBAuth.php +++ b/includes/IPBAuth.php @@ -206,9 +206,10 @@ public static function updateUser(&$user) if (is_array($groupmap)) { foreach ($groupmap as $ug_wiki => $ug_ipb) { $user_has_ug = in_array($ug_wiki, $user->getEffectiveGroups()); - if (in_array($ug_ipb, $groups) && !$user_has_ug) { + $user_needs_ug = !empty(array_uintersect((array)$ug_ipb, $groups, 'version_compare')); + if ($user_needs_ug && !$user_has_ug) { $user->addGroup($ug_wiki); - } elseif (!in_array($ug_ipb, $groups) && $user_has_ug) { + } elseif (!$user_needs_ug && $user_has_ug) { $user->removeGroup($ug_wiki); } }