public function all($take, $skip, $category)
 {
     if ($category) {
         $showAllProducts = UserModel::isAdminUser($_SESSION['id']) ? "" : "AND p.quantity > 0";
         $result = $this->db->prepare("SELECT p.id, p.name, p.quantity FROM products p\n                                    INNER JOIN products_categories pc\n                                    ON p.id = pc.product_id\n                                    WHERE pc.category_id = (SELECT id FROM categories WHERE name = ?) {$showAllProducts}\n                                    LIMIT ? OFFSET ?");
         $result->execute([$category, $take, $skip]);
         return $this->prepareViewModel($result->fetchAll());
     } else {
         $showAllProducts = UserModel::isAdminUser($_SESSION['id']) ? "" : "WHERE quantity > 0";
         $result = $this->db->prepare("SELECT id, name, quantity, price FROM products {$showAllProducts} LIMIT ? OFFSET ?");
         $result->execute([$take, $skip]);
         return $this->prepareViewModel($result->fetchAll());
     }
 }
 private function initLogin($user, $pass)
 {
     $userModel = new UserModel();
     $userId = $userModel->login($user, $pass);
     $_SESSION['id'] = $userId;
     $userRoles = $userModel->getUserRoles($userId);
     $_SESSION['roles'] = $userRoles;
     header("Location: profile");
 }