From 1f628726cf58e5b816f549f5db8f17196edea862 Mon Sep 17 00:00:00 2001 From: Srexi Date: Thu, 5 May 2022 11:47:30 +0200 Subject: [PATCH] Update rexshop.php --- inc/plugins/rexshop.php | 27 +++++++++++++++------------ 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/inc/plugins/rexshop.php b/inc/plugins/rexshop.php index bdcfa9d..568b81a 100644 --- a/inc/plugins/rexshop.php +++ b/inc/plugins/rexshop.php @@ -1227,25 +1227,28 @@ function rexshop_fetch_products($acp = false) $usergroups = explode(',', ltrim(rtrim(trim($addon['value'], ' '), ','), ',')); if (empty($usergroups)) { continue; - } - + } + + $usergroupIds = []; foreach ($usergroups as $usergroup) { $usergroupId = $usergroup; if (!is_numeric($usergroup)) { - $query = $db->query("SELECT * FROM `" . TABLE_PREFIX . "usergroups` WHERE LOWER(`title`)='" . strtolower($usergroup) . "' LIMIT 1"); + $query = $db->query("SELECT * FROM `" . TABLE_PREFIX . "usergroups` WHERE LOWER(`title`)='" . mb_strtolower($usergroup) . "' LIMIT 1"); if ($db->num_rows($query) > 0) { $usergroupId = (int) $db->fetch_field($query, "gid"); } } - - if (strtolower($addon['name']) === 'onlyusergroups' || strtolower($addon['name']) === 'onlyusergroup') { - if ((int) $mybb->user['usergroup'] !== (int) $usergroupId) { - continue 3; - } - } else if (strtolower($addon['name']) === 'excludeusergroups' || strtolower($addon['name']) === 'excludeusergroup') { - if ((int) $mybb->user['usergroup'] === (int) $usergroupId) { - continue 3; - } + + $usergroupIds[] = $usergroupId; + } + + if (mb_strtolower($addon['name']) === 'onlyusergroups' || mb_strtolower($addon['name']) === 'onlyusergroup') { + if (! in_array((int) $mybb->user['usergroup'], $usergroupIds) { + continue 2; + } + } else if (mb_strtolower($addon['name']) === 'excludeusergroups' || mb_strtolower($addon['name']) === 'excludeusergroup') { + if (in_array((int) $mybb->user['usergroup'], $usergroupIds)) { + continue 2; } } }