diff --git a/application/controllers/admin/useraction.php b/application/controllers/admin/useraction.php index 5a65478c9d9..daf2e8a59ff 100755 --- a/application/controllers/admin/useraction.php +++ b/application/controllers/admin/useraction.php @@ -644,19 +644,16 @@ public function personalsettings() $oldPassword = Yii::app()->request->getPost('oldpassword'); - $newPassword = Yii::app()->request->getPost('password'); - $repeatPassword = Yii::app()->request->getPost('repeatpassword'); - $oUserModel->email = Yii::app()->request->getPost('email'); - - //if only email should be changed, then just check the current password + // Check the current password $currentPasswordOk = $oUserModel->checkPassword($oldPassword); - if ($currentPasswordOk) { - $uresult = $oUserModel->save(); - } else { + if (!$currentPasswordOk) { Yii::app()->setFlashMessage(gT('The current password is not correct.'), 'error'); $this->getController()->redirect(array("admin/user/sa/personalsettings")); } + $newPassword = Yii::app()->request->getPost('password'); + $repeatPassword = Yii::app()->request->getPost('repeatpassword'); + if ($newPassword !== '' && $repeatPassword !== '') { $error = $oUserModel->validateNewPassword($newPassword, $oldPassword, $repeatPassword); @@ -670,6 +667,25 @@ public function personalsettings() } } + if (Yii::app()->request->getPost('newemailshown') == "1") { + if (Yii::app()->getConfig('demoMode')) { + Yii::app()->setFlashMessage(gT("You can't change email if demo mode is active."), 'error'); + $this->getController()->redirect(array("admin/user/sa/personalsettings")); + } + + $oldPassword = Yii::app()->request->getPost('oldpassword'); + + // Check the current password + $currentPasswordOk = $oUserModel->checkPassword($oldPassword); + if (!$currentPasswordOk) { + Yii::app()->setFlashMessage(gT('The current password is not correct.'), 'error'); + $this->getController()->redirect(array("admin/user/sa/personalsettings")); + } + + $oUserModel->email = Yii::app()->request->getPost('newemail'); + $uresult = $oUserModel->save(); + } + $oUserModel->lang = Yii::app()->request->getPost('lang'); $oUserModel->dateformat = Yii::app()->request->getPost('dateformat'); $oUserModel->htmleditormode = Yii::app()->request->getPost('htmleditormode'); diff --git a/application/views/admin/user/personalsettings.php b/application/views/admin/user/personalsettings.php index 473f7d7de87..c0f4e163a7d 100644 --- a/application/views/admin/user/personalsettings.php +++ b/application/views/admin/user/personalsettings.php @@ -122,22 +122,32 @@ +