/** * 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]); }