Beispiel #1
0
 /**
  * Show profile form for update information
  *
  * @return string|\yii\web\Response
  */
 public function actionProfile()
 {
     /** @var ProfileForm $model */
     $model = new ProfileForm();
     /** @var User $user */
     $user = User::getCurrentUser();
     $model->setUsername($user->getUsername());
     $model->setEmail($user->getEmail());
     $model->setMailNotifications($user->getMailNotifications());
     if ($model->load(Yii::$app->request->post()) && $model->validate()) {
         /** @var User $user */
         $user = User::getCurrentUser();
         $user->username = $model->getUsername();
         $user->email = $model->getEmail();
         if (mb_strlen($model->getPassword()) > 5) {
             $user->setPassword($model->getPassword());
             $user->generateAuthKey();
         }
         if (mb_strlen($user->email) <= 5) {
             $user->setMailNotifications(false);
         }
         if ($user->save()) {
             Yii::$app->session->setFlash('success', Yii::t('app', 'FLASH_PROFILE_UPDATED'));
             return $this->redirect(['/estate']);
         } else {
             Yii::$app->session->setFlash('error', Yii::t('app', 'FLASH_PROFILE_FAILED'));
             return $this->redirect(['/estate']);
         }
     }
     return $this->render('profile', ['model' => $model]);
 }