From 433a78a1c2849999af21a0446b94376ee459a7e1 Mon Sep 17 00:00:00 2001 From: Yuriy Bakhtin Date: Thu, 16 Feb 2023 12:55:48 +0400 Subject: [PATCH] Fix update user with not existing group (#6105) * Fix update user with not existing group * Restrict group selector only with existing groups --------- Co-authored-by: Lucas Bartholemy --- CHANGELOG.md | 1 + .../admin/controllers/UserController.php | 3 ++- .../admin/models/forms/UserEditForm.php | 20 +++++++++---------- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e992995662..5ff119b7d7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,7 @@ HumHub Changelog ------------------------- - Fix #5965: Suppress log warning 'Invalid session auth key attempted for user' - Fix #6084: Automatic LDAP user registration broken when not all req. attributes provided +- Fix #6104: Fix update user with not existing group - Fix #6103: Fix null passing to parse_str() 1.13.1 (January 25, 2023) diff --git a/protected/humhub/modules/admin/controllers/UserController.php b/protected/humhub/modules/admin/controllers/UserController.php index 9b3aa97393..36a594cdfd 100644 --- a/protected/humhub/modules/admin/controllers/UserController.php +++ b/protected/humhub/modules/admin/controllers/UserController.php @@ -148,7 +148,8 @@ class UserController extends Controller 'items' => UserEditForm::getGroupItems(), 'options' => [ 'data-placeholder' => Yii::t('AdminModule.user', 'Select Groups'), - 'data-placeholder-more' => Yii::t('AdminModule.user', 'Add Groups...') + 'data-placeholder-more' => Yii::t('AdminModule.user', 'Add Groups...'), + 'data-tags' => 'false' ], 'maxSelection' => 250, 'isVisible' => Yii::$app->user->can(new ManageGroups()) diff --git a/protected/humhub/modules/admin/models/forms/UserEditForm.php b/protected/humhub/modules/admin/models/forms/UserEditForm.php index ff436af763..78418f6988 100644 --- a/protected/humhub/modules/admin/models/forms/UserEditForm.php +++ b/protected/humhub/modules/admin/models/forms/UserEditForm.php @@ -2,12 +2,11 @@ namespace humhub\modules\admin\models\forms; -use humhub\libs\Html; -use humhub\modules\user\models\GroupUser; -use Yii; -use humhub\modules\user\models\User; -use humhub\modules\user\models\Group; use humhub\modules\admin\permissions\ManageGroups; +use humhub\modules\user\models\Group; +use humhub\modules\user\models\GroupUser; +use humhub\modules\user\models\User; +use Yii; /** * Description of UserEditForm @@ -18,14 +17,13 @@ class UserEditForm extends User { /** * GroupId selection array of the form. - * @var type + * @var array */ public $groupSelection; /** * Current member groups (models) of the given $user - * @var type - * + * @var Group[] */ public $currentGroups; @@ -103,19 +101,19 @@ class UserEditForm extends User if (!$this->isCurrentlyMemberOf($groupId)) { /* @var $group Group */ $group = Group::findOne(['id' => $groupId]); - if(!$group->is_admin_group || Yii::$app->user->isAdmin()) { + if ($group && (!$group->is_admin_group || Yii::$app->user->isAdmin())) { $group->addUser($this); } } } } - return parent::afterSave($insert, $changedAttributes); + parent::afterSave($insert, $changedAttributes); } /** * Checks if the given group (id or model object) is contained in the form selection - * @param integer $groupId groupId or Group model object + * @param int|Group $groupId groupId or Group model object * @return boolean true if contained in selection else false */ private function isInGroupSelection($groupId)