function doForgotPassword() { if (!$this->request->hasPost()) { return; } if (!($user = lmbActiveRecord::findFirst('lmbCmsUser', array('email = ?', $this->request->get('email'))))) { return $this->flashError("Пользователь с таким значением email не найден", array('Field' => 'email')); } $this->useForm('password_form'); if (!$this->error_list->isEmpty()) { return; } $password = $user->generatePassword(); $user->setNewPassword($password); $user->setGeneratedPassword($user->getCryptedPassword($password)); $user->saveSkipValidation(); $template = new lmbMacroView('cms_user/forgot_password_email.txt'); $template->set('user', $user); $template->set('approve_password_url', 'http://' . $_SERVER['HTTP_HOST'] . '/cms_user/approve/' . $user->getGeneratedPassword()); $email_body = $template->render(); $mailer = new lmbMailer(); $mailer->sendPlainMail($user->getEmail(), lmb_env_get('ADMIN_EMAIL', "*****@*****.**"), "Password recovery", $email_body); $this->flashAndRedirect("Новый пароль выслан на ваш email", '/cms_user/login'); }