From 04974d37d6c14494806d5214e82fe9c92392673c Mon Sep 17 00:00:00 2001 From: Raul Date: Wed, 13 Apr 2022 10:38:32 +0200 Subject: [PATCH] Replace `rowCount()` with explicit count primitive function. This is necessary due to sqlite driver always returning 0 on `rowCount` (this is documented behaviour: https://www.php.net/manual/en/pdostatement.rowcount.php) Signed-off-by: Raul --- lib/Db/AclMapper.php | 4 ++-- lib/Db/LabelMapper.php | 4 ++-- lib/Db/StackMapper.php | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/lib/Db/AclMapper.php b/lib/Db/AclMapper.php index d95f88c46..fd673f678 100644 --- a/lib/Db/AclMapper.php +++ b/lib/Db/AclMapper.php @@ -63,13 +63,13 @@ class AclMapper extends DeckMapper implements IPermissionMapper { */ public function isOwner($userId, $aclId): bool { $qb = $this->db->getQueryBuilder(); - $qb->select('*') + $qb->select('acl.id') ->from($this->getTableName(), 'acl') ->innerJoin('acl', 'deck_boards','b', 'acl.board_id = b.id') ->where($qb->expr()->eq('owner', $qb->createNamedParameter($userId, IQueryBuilder::PARAM_STR))) ->andWhere($qb->expr()->eq('acl.id', $qb->createNamedParameter($aclId, IQueryBuilder::PARAM_INT))); - return $qb->executeQuery()->rowCount() > 0; + return count($qb->executeQuery()->fetchAll()) > 0; } /** diff --git a/lib/Db/LabelMapper.php b/lib/Db/LabelMapper.php index be1b68c23..d65b65fd2 100644 --- a/lib/Db/LabelMapper.php +++ b/lib/Db/LabelMapper.php @@ -180,13 +180,13 @@ class LabelMapper extends DeckMapper implements IPermissionMapper { */ public function isOwner($userId, $labelId): bool { $qb = $this->db->getQueryBuilder(); - $qb->select('*') + $qb->select('l.id') ->from($this->getTableName(), 'l') ->innerJoin('l', 'deck_boards' , 'b', 'l.board_id = b.id') ->where($qb->expr()->eq('l.id', $qb->createNamedParameter($labelId, IQueryBuilder::PARAM_INT))) ->andWhere($qb->expr()->eq('b.owner', $qb->createNamedParameter($userId, IQueryBuilder::PARAM_STR))); - return $qb->executeQuery()->rowCount() > 0; + return count($qb->executeQuery()->fetchAll()) > 0; } /** diff --git a/lib/Db/StackMapper.php b/lib/Db/StackMapper.php index 9b719d989..9990ad6c5 100644 --- a/lib/Db/StackMapper.php +++ b/lib/Db/StackMapper.php @@ -131,13 +131,13 @@ class StackMapper extends DeckMapper implements IPermissionMapper { */ public function isOwner($userId, $stackId): bool { $qb = $this->db->getQueryBuilder(); - $qb->select('*') + $qb->select('s.id') ->from($this->getTableName(), 's') ->innerJoin('s', 'deck_boards', 'b', 'b.id = s.board_id') ->where($qb->expr()->eq('s.id', $qb->createNamedParameter($stackId, IQueryBuilder::PARAM_INT))) ->andWhere($qb->expr()->eq('owner', $qb->createNamedParameter($userId, IQueryBuilder::PARAM_STR))); - return $qb->executeQuery()->rowCount() > 0; + return count($qb->executeQuery()->fetchAll()) > 0; } /**