Exemplo n.º 1
0
 /**
  * Функция отправки письма для сброса пароля
  * @return
  */
 public function actionForgotPassword()
 {
     $model = $this->loadModel($this->model);
     $model->scenario = 'resetPassword';
     $this->performAjaxValidation($model);
     if (isset($_POST[$this->model])) {
         $model->attributes = $_POST;
         if (!empty($model->email)) {
             //посылка письма для сброса
             if ($model->validate(array('email'))) {
                 $buyer = Ar::model($this->model)->find('email = :email', array(':email' => $model->email));
                 $username = $buyer->username;
                 $key = String::getUniqueString($this->model, 'reset_key', 12);
                 // отправить сообщение для сброса пароля
                 $status = app()->mail->send($buyer->email, t('front', 'Сброс пароля на сайте {site}!', array('{site}' => app()->name)), app()->mail->getView('auth.reset-password', array('username' => $username, 'key' => $key)));
                 //save reset key in db
                 Buyer::model()->updateByPk($buyer->id, array('reset_key' => $key));
                 //set user flash message
                 setFlash('email-sent', 'forgot-password-success');
             }
         }
     }
     $this->pageTitle = t('buyer', 'Смена пароля');
     $this->render('forgotpassword', compact('model'));
 }