Esempio n. 1
0
 /**
  * @return boolean
  *
  * @throws \cs\web\Exception
  */
 public function action()
 {
     if ($this->validate()) {
         /** @var \app\models\User $user */
         $user = Yii::$app->user->identity;
         // добавляю в диспечер
         $fields = \app\services\EmailChangeDispatcher::add($user->getId(), $this->email);
         // отправляю письмо
         Application::mail($this->email, 'Заявка на смену Email/Логина', 'change_email', ['url' => Url::to(['auth/change_email_activate', 'code' => $fields->getField('code')], true), 'user' => $user]);
         return true;
     } else {
         return false;
     }
 }
Esempio n. 2
0
 /**
  * Страница активации для подтверждения сменя email
  *
  * @param string $code код подтверждения
  *
  * @return string|\yii\web\Response
  *
  * @throws \cs\web\Exception
  */
 public function actionChange_email_activate($code)
 {
     $row = EmailChangeDispatcher::find(['code' => $code]);
     if (is_null($row)) {
         throw new Exception('Данный код уже активирован или не найден');
     }
     if (Yii::$app->user->isGuest) {
         /** @var \app\models\User $user */
         $user = User::find($row->getField('parent_id'));
         $user->update(['email' => $row->getField('email')]);
         Yii::$app->user->login($user);
     } else {
         /** @var \app\models\User $user */
         $user = Yii::$app->user->identity;
         $user->update(['email' => $row->getField('email')]);
     }
     $row->delete();
     return $this->render();
 }