From 1a24865fdb66eb1d98fdbec469d48d0aaaf14172 Mon Sep 17 00:00:00 2001 From: Partydragen Date: Fri, 8 Sep 2023 17:41:31 +0200 Subject: [PATCH] Ignore adding group if its invalid (#3436) --- core/classes/Core/User.php | 27 +++++++++++++++++---------- 1 file changed, 17 insertions(+), 10 deletions(-) diff --git a/core/classes/Core/User.php b/core/classes/Core/User.php index 9545289bd8..bcf99f2c70 100644 --- a/core/classes/Core/User.php +++ b/core/classes/Core/User.php @@ -134,6 +134,12 @@ public function addGroup(int $group_id, int $expire = 0): bool { return false; } + $group = Group::find($group_id); + if (!$group) { + ErrorHandler::logWarning('Could not add invalid group ' . $group_id . ' to user ' . $this->data()->id); + return false; + } + $this->_db->query('INSERT INTO `nl2_users_groups` (`user_id`, `group_id`, `received`, `expire`) VALUES (?, ?, ?, ?)', [ $this->data()->id, $group_id, @@ -141,11 +147,8 @@ public function addGroup(int $group_id, int $expire = 0): bool { $expire ]); - $group = Group::find($group_id); - if ($group) { - $this->_groups[$group_id] = $group; - self::$_group_cache[$this->data()->id][$group_id] = $group; - } + $this->_groups[$group_id] = $group; + self::$_group_cache[$this->data()->id][$group_id] = $group; EventHandler::executeEvent(new UserGroupAddedEvent( $this, @@ -658,6 +661,12 @@ public function getMainGroup(): Group { * @return false|void */ public function setGroup(int $group_id, int $expire = 0) { + $group = Group::find($group_id); + if (!$group) { + ErrorHandler::logWarning('Could not set invalid group ' . $group_id . ' to user ' . $this->data()->id); + return false; + } + if ($this->data()->id == 1) { return false; } @@ -672,11 +681,9 @@ public function setGroup(int $group_id, int $expire = 0) { ]); $this->_groups = []; - $group = Group::find($group_id); - if ($group) { - $this->_groups[$group_id] = $group; - self::$_group_cache[$this->data()->id] = $this->_groups; - } + $this->_groups[$group_id] = $group; + self::$_group_cache[$this->data()->id] = $this->_groups; + } /**