Пример #1
0
 public static function checkUser()
 {
     // Предотвращение перехвата сеанса
     $sessUserId = Session::get('user_id');
     if (!isset($sessUserId)) {
         Session::destroy();
         //             unset($this->user);
         Session::setMsg('Произошла ошибка. Пожалуйста авторизуйтесь заново', 'warning');
         return FALSE;
     }
     // Предотвращение фиксации сеанса (включая ini_set('session.use_only_cookies', true);)
     $sessGenerated = Session::get('generated');
     if (!isset($sessGenerated) || $sessGenerated < time() - 30) {
         session_regenerate_id();
         $_SESSION['generated'] = time();
     }
     if ($sessUserId) {
         $userModel = new UserTableModel();
         $userModel->setId($sessUserId);
         $userModel->setTable('user');
         $username = $userModel->readRecordsById('id', 'username')[0]['username'];
         Session::set('username', $username);
         return TRUE;
     }
     return FALSE;
 }
 public function updateRecord()
 {
     if (!$this->id) {
         throw new Exception('Не задан id пользователя для обновления');
     }
     try {
         $this->setUserIdForDB();
         $st = $this->db->prepare("UPDATE user SET full_name = ? WHERE id = ?");
         $st->execute([$this->fullName, $this->id]);
         $this->addresses->updateRecord();
         $this->phones->updateRecord();
         Role::updateRoleByUserId($this->db, $this->roleId, $this->id);
         Session::setMsg('Пользователь успешно обновлен', 'success');
     } catch (Exception $ex) {
         $ex->getMessage();
     }
 }
Пример #3
0
 public function checkoutAction()
 {
     $fc = FrontController::getInstance();
     $model = new FrontModel();
     if ($_SERVER['REQUEST_METHOD'] === 'POST') {
         $orderModel = new OrderTableModel();
         $orderModel->setData();
         $orderModel->addRecord();
         Basket::deleteBasket();
         \app\services\Session::setMsg('Ваш заказ принят. Наш менеджер свяжется с вами в ближайшее время', 'success');
         header('Location: /');
         exit;
     } else {
         $output = $model->render('../views/order/order.php', 'withoutSliderAndSidebar');
         $fc->setPage($output);
     }
 }
Пример #4
0
 public function validateAction()
 {
     $fc = FrontController::getInstance();
     $model = new UserTableModel();
     $model->setTable('user');
     if (empty($fc->getParams()['email']) && empty($fc->getParams()['key'])) {
         header('Location: /');
         exit;
     }
     $model->setValidateUserData($fc->getParams());
     if ($model->checkValidKey()) {
         $output = $model->render('../views/user/validate.php', 'withoutSliderAndSidebarAndFooter');
         $fc->setPage($output);
     } else {
         Session::setMsg('Невозможно активировать данный аккаунт. Пожалуйста зарегистрируйтесь заново', 'warning');
         header('Location: /user/login');
         exit;
     }
 }
Пример #5
0
 private function checkCreds()
 {
     try {
         $st = $this->db->prepare("SELECT `id`, `username`, `email`, `password_hash`, `validated` FROM {$this->table} WHERE `username` = :username");
         $st->execute([':username' => $this->login]);
         if ($st->rowCount() === 1) {
             $user = $st->fetch(PDO::FETCH_ASSOC);
             if (!$user['validated']) {
                 Session::setMsg('Для входа необходимо активировать ваш аккаунт при помощи письма, отправленного на ваш электронный ящик ранее', 'warning');
                 return FALSE;
             }
             if (User::confirmPassword($user['password_hash'], $this->password)) {
                 return $user;
             }
         }
         Session::setMsg('Неверный логин или пароль', 'danger');
         return FALSE;
     } catch (Exception $ex) {
         $ex->getMessage();
     }
 }
Пример #6
0
 public function setUserMsgAction()
 {
     header('Content-type: text/plain; charset=utf-8');
     header('Cache-Control: no-store, no-cache');
     header('Expires: ' . date('r'));
     $msg = Validate::validateInputVar('msg', 'INPUT_GET', 'str');
     if ($msg) {
         Session::setMsg($msg);
     } else {
         echo FALSE;
     }
 }
Пример #7
0
 public function addArticleAction()
 {
     $fc = FrontController::getInstance();
     $model = new AdminModel('Блог', 'Новая статья');
     $articleModel = new ArticleTableModel();
     if ($_SERVER['REQUEST_METHOD'] === 'POST') {
         $articleModel->setData();
         $articleModel->addRecord();
         Session::setMsg('Статья успешно добавлена', 'success');
         header('Location: /admin/blog');
         exit;
     } else {
         $output = $model->render('../views/admin/blog/addarticle.php', 'admin');
         $fc->setPage($output);
     }
 }