public function actionActivate()
 {
     $user_db = new UserDB();
     $user_db->loadOnLogin($this->request->login);
     $hornav = $this->getHornav();
     if ($user_db->isSaved() && $user_db->activation == "") {
         $this->title = "Ваш аккаунт уже активирован";
         $this->meta_desc = "Вы можете войти в свой аккаунт, используя Ваши логин и пароль.";
         $this->meta_key = "активация, успешная активация, успешная активация регистрация";
         $hornav->addData("Активация");
     } elseif ($user_db->activation != $this->request->key) {
         $this->title = "Ошибка при активации";
         $this->meta_desc = "Неверный код активации! Если ошибка будет повторяться, то обратитесь к администрации.";
         $this->meta_key = "активация, ошибка активация, ошибка активация регистрация";
         $hornav->addData("Ошибка активации");
     } else {
         $user_db->activation = "";
         try {
             $user_db->save();
         } catch (Exception $e) {
             print_r($e->getMessage());
         }
         $this->title = "Ваш аккаунт успешно активирован";
         $this->meta_desc = "Теперь Вы можете войти в свою учётную запись, используя Ваши логин и пароль.";
         $this->meta_key = "активация, успешная активация, успешная активация регистрация";
         $hornav->addData("Активация");
     }
     $pm = new PageMessage();
     $pm->hornav = $hornav;
     $pm->header = $this->title;
     $pm->text = $this->meta_desc;
     $this->render($pm);
 }
 public static function authUser($login = false, $password = false)
 {
     if ($login) {
         $auth = true;
     } else {
         if (!session_id()) {
             session_start();
         }
         if (!empty($_SESSION["auth_login"]) && !empty($_SESSION["auth_password"])) {
             $login = $_SESSION["auth_login"];
             $password = $_SESSION["auth_password"];
         } else {
             return;
         }
         $auth = false;
     }
     $user = new UserDB();
     if ($auth) {
         $password = self::hash($password, Config::SECRET);
     }
     $select = new Select();
     $select->from(self::$table, array("COUNT(id)"))->where("`login` = " . self::$db->getSQ(), array($login))->where("`password` = " . self::$db->getSQ(), array($password));
     $count = self::$db->selectCell($select);
     if ($count) {
         $user->loadOnLogin($login);
         if ($user->activation != "") {
             throw new Exception("ERROR_ACTIVATE_USER");
         }
         if ($auth) {
             $user->login();
         }
         return $user;
     }
     if ($auth) {
         throw new Exception("ERROR_AUTH_USER");
     }
 }
Beispiel #3
0
 public static function authUser($login = false, $password = false)
 {
     if ($login) {
         $auth = true;
     } else {
         //значит проверка данных в сесии
         if (!session_id()) {
             session_start();
         }
         //стартуем сесию
         if (!empty($_SESSION["auth_login"]) && !empty($_SESSION["auth_password"])) {
             //если логин и пароль не пустые
             $login = $_SESSION["auth_login"];
             //то данные берутся из сесии
             $password = $_SESSION["auth_password"];
         } else {
             return;
         }
         //если не авторизация и данные не из сесии значит вазвращаемся
         $auth = false;
         //а авторизация false
     }
     $user = new UserDB();
     if ($auth) {
         $password = self::hash($password, Config::SECRET);
     }
     //если авторизация переданный пароль хэшеруем
     $select = new Select();
     //ищем пользователя отвечаютщего запросу (соответствие логина пароля)
     $select->from(self::$table, array("COUNT(id)"))->where("`login` = " . self::$db->getSQ(), array($login))->where("`password` = " . self::$db->getSQ(), array($password));
     $count = self::$db->selectCell($select);
     //ищем количество соответствующих (логину паролю)пользователей
     if ($count) {
         $user->loadOnLogin($login);
         //загружаем пользователя
         if ($user->activation != "") {
             throw new Exception("ERROR_ACTIVATE_USER");
         }
         //если пользователь не активированн выводим ошибку
         if ($auth) {
             $user->login();
         }
         //если авторизация делаем логин
         return $user;
         //возвращаем юзера
     }
     if ($auth) {
         throw new Exception("ERROR_AUTH_USER");
     }
     //возвращаем ошибку если не был найден пользователем с таким логином и паролем
 }