Skip to content

Commit

Permalink
Merge branch 'master' into develop
Browse files Browse the repository at this point in the history
  • Loading branch information
luke- committed Sep 16, 2022
2 parents 4f598c6 + 4309b4b commit 5fe0552
Show file tree
Hide file tree
Showing 6 changed files with 27 additions and 13 deletions.
1 change: 1 addition & 0 deletions CHANGELOG.md
Expand Up @@ -5,6 +5,7 @@ HumHub Changelog
-------------------
- Fix #5851: Admin User Settings cannot saved
- Fix #5856: Fix SMTPS Config Migration
- Fix #5854: Don't validate user language on approve


1.12.1 (August 15, 2022)
Expand Down
20 changes: 20 additions & 0 deletions protected/humhub/components/i18n/I18N.php
Expand Up @@ -192,6 +192,26 @@ public function getAllowedLanguages()
return $availableLanguages;
}

/**
* Check if the provided or browser language is allowed in system, otherwise return default language
*
* @since 1.12.2
* @param string|null $language NULL - to get a language from browser
* @return string|null
*/
public function getAllowedLanguage(?string $language = null): ?string
{
if (empty($language)) {
$language = Yii::$app->language;
}

if (array_key_exists($language, $this->getAllowedLanguages())) {
return $language;
}

return Yii::$app->settings->get('defaultLanguage');
}

/**
* @inheritdoc
*/
Expand Down
Expand Up @@ -157,14 +157,9 @@ public function approve(): bool
}

$this->user->status = User::STATUS_ENABLED;
$this->user->setScenario(User::SCENARIO_APPROVE);

if ($this->validate() &&
$this->user->save() &&
$this->send()) {
return true;
}

return false;
return $this->user->save() && $this->send();
}

/**
Expand Down
Expand Up @@ -118,10 +118,7 @@ public function actionEditSettings()
$user = Yii::$app->user->getIdentity();

$model = new \humhub\modules\user\models\forms\AccountSettings();
$model->language = $user->language;
if ($model->language == "") {
$model->language = Yii::$app->settings->get('defaultLanguage');
}
$model->language = Yii::$app->i18n->getAllowedLanguage($user->language);
$model->timeZone = $user->time_zone;
if (empty($model->timeZone)) {
$model->timeZone = Yii::$app->settings->get('defaultTimeZone');
Expand Down
3 changes: 2 additions & 1 deletion protected/humhub/modules/user/models/User.php
Expand Up @@ -99,6 +99,7 @@ class User extends ContentContainerActiveRecord implements IdentityInterface, Se
const SCENARIO_REGISTRATION = 'registration';
const SCENARIO_REGISTRATION_EMAIL = 'registration_email';
const SCENARIO_EDIT_ACCOUNT_SETTINGS = 'editAccountSettings';
const SCENARIO_APPROVE = 'approve';

/**
* @event Event an event that is triggered when the user visibility is checked via [[isVisible()]].
Expand Down Expand Up @@ -165,7 +166,7 @@ public function rules()
[['time_zone'], 'validateTimeZone'],
[['auth_mode'], 'string', 'max' => 10],
[['language'], 'string', 'max' => 5],
['language', 'in', 'range' => array_keys(Yii::$app->i18n->getAllowedLanguages())],
['language', 'in', 'range' => array_keys(Yii::$app->i18n->getAllowedLanguages()), 'except' => self::SCENARIO_APPROVE],
[['email'], 'unique'],
[['email'], 'email'],
[['email'], 'string', 'max' => 150],
Expand Down
Expand Up @@ -261,7 +261,7 @@ public function register(\yii\authclient\ClientInterface $authClient = null)
return false;
}

$this->models['User']->language = Yii::$app->language;
$this->models['User']->language = Yii::$app->i18n->getAllowedLanguage();
if ($this->enableUserApproval) {
$this->models['User']->status = User::STATUS_NEED_APPROVAL;
$this->models['User']->registrationGroupId = $this->models['GroupUser']->group_id;
Expand Down

0 comments on commit 5fe0552

Please sign in to comment.