예제 #1
0
 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);
     }
 }
예제 #2
0
 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();
         }
     }
 }
예제 #4
0
 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));
         }
     }
 }
예제 #5
0
 /**
  * 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));
 }