static function lostPassword($event) { $user = $event->sender; // добавляем в базу запись о необходимости подтверждения регистрации $confim = new CatalogUsersConfirm(); $confim->user_id = $user->id; $confim->date = time(); $confim->confirm_key = substr(md5($user->email . time()), 0, 8); $confim->type = "lostpassword"; $confim->save(); SiteHelper::setLog("catalog_users", "lost_password_request", $user->id); if ($confim->hasErrors() && sizeof($confim) > 0) { $errors = "Ошибка сохранение подтвержджения восстановление пароля: "; foreach ($confim->getErrors() as $data) { foreach ($data as $key => $value) { $errors .= $value . ", "; } } throw new Exception($errors); } else { $arrayParams = ["link" => SiteHelper::createUrl("/user/default/LostConfirm", ["key" => $confim->confirm_key])]; // Отправляем письмо для подтверждения Email Yii::app()->notifications->send("lostpassword_request", ["mail"], $user->id, $arrayParams); } }
static function registration_old($event) { echo "3*<br/>"; $user = $event->sender; var_dump($user); $d = new CatalogUsersConfirm(); $d->user_id = 31; $d->confirm_key = "Igor"; $d->date = time(); $d->save(); }
public function check_passwords($attribute, $params) { if (!$this->hasErrors()) { $key = !empty($_GET["key"]) ? SiteHelper::checkedVaribal($_GET["key"], "string") : ""; $confirm = CatalogUsersConfirm::findByAttributes(array("confirm_key" => $key)); if (!empty($confirm) && sizeof($confirm) == 1) { $userModel = CatalogUsers::fetch($confirm[0]->user_id->id); if ($userModel->active == 0) { $error = Yii::t("models", "Ваш аккаунт не активирован"); } } else { $error = Yii::t("models", "Указан не верный ключ"); } if (!empty($error)) { $this->addErrors(array("0" => $error)); } else { $confirm[0]->delete(); } } }
public function check_exists_params($attribute, $params) { if (!$this->hasErrors()) { $userList = CatalogUsers::findByAttributes(array("email" => $this->email), 0); if (!empty($userList) && sizeof($userList) == 1) { // Если в базе уже сужествует запросы на восстановление, до удаляем его $existConfirm = CatalogUsersConfirm::findByAttributes(array("user_id" => $userList[0]->id, "type" => "lostpassword")); if (sizeof($existConfirm) > 0) { $existConfirm[0]->delete(); } if ($userList[0]->active == 0) { $error = Yii::t("models", "Ваш аккаунт не активирован"); } } else { $error = Yii::t("models", "Вы ввели не существующий EMAIL"); } if (!empty($error)) { $this->addErrors(array("0" => $error)); } } }
/** * Displays the lost password page */ public function actionLostConfirm() { $error = false; $lostConfirm = new CatalogUsersLost(); $formNewsPassword = new CatalogUsersLostConfirm(); $key = Yii::app()->request->getParam("key", ""); if (!empty($key) && !isset($_GET["successfully"])) { $lostConfirm = CatalogUsersConfirm::findByAttributes(array("confirm_key" => $key)); if (empty($lostConfirm) || sizeof($lostConfirm) == 0) { $error = true; } } else { $error = true; } if (empty($error) && !empty($_POST["CatalogUsersLostConfirm"])) { $formNewsPassword = new CatalogUsersLostConfirm(); $formNewsPassword->setAttributesFromArray($_POST["CatalogUsersLostConfirm"]); if ($formNewsPassword->validate()) { $formNewsPassword->onLostPasswordConfirm(new CModelEvent($lostConfirm)); $this->redirect($this->createUrl("default/lostconfirm/successfully/")); } } if (isset($_GET["successfully"])) { $error = false; $okMessage = "<b>Новый пароль успешно сохранен.</b><br/>Вы можете авторизоваться используя новый пароль"; } else { $okMessage = null; } $this->render('lostconfirm', array('key' => $key, 'form' => $lostConfirm, 'formNewsPassword' => $formNewsPassword, "error" => $error, "okMessage" => $okMessage)); }