/** * Функция отправки письма для сброса пароля * @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')); }