From 26ae92bc7b0275cb732bef12f66471091134a5ca Mon Sep 17 00:00:00 2001 From: Marco Nassabain Date: Wed, 24 Feb 2021 22:52:55 +0100 Subject: =?UTF-8?q?=E2=9C=A8=20ItemMapperV2:=20include=20shared=20in=20fun?= =?UTF-8?q?ctions=20updated=20the=20following=20functions=20to=20include?= =?UTF-8?q?=20shared=20items:=20-=20findFromUser=20-=20findForUserByGuidHa?= =?UTF-8?q?sh=20-=20readAll=20-=20findAllAfter=20-=20findAllItems?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Marco Nassabain --- lib/Db/ItemMapperV2.php | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) (limited to 'lib/Db') diff --git a/lib/Db/ItemMapperV2.php b/lib/Db/ItemMapperV2.php index 1365121fe..b1a4e9015 100644 --- a/lib/Db/ItemMapperV2.php +++ b/lib/Db/ItemMapperV2.php @@ -94,10 +94,11 @@ class ItemMapperV2 extends NewsMapperV2 $builder->select('items.*') ->from($this->tableName, 'items') ->innerJoin('items', FeedMapperV2::TABLE_NAME, 'feeds', 'items.feed_id = feeds.id') - ->where('feeds.user_id = :user_id') + ->where('(feeds.user_id = :user_id AND items.shared_by = \'\') OR items.shared_with = :shared_with') ->andWhere('items.id = :item_id') ->andWhere('feeds.deleted_at = 0') ->setParameter('user_id', $userId, IQueryBuilder::PARAM_STR) + ->setParameter('shared_with', $userId, IQueryBuilder::PARAM_STR) ->setParameter('item_id', $id, IQueryBuilder::PARAM_INT); return $this->findEntity($builder); @@ -145,10 +146,11 @@ class ItemMapperV2 extends NewsMapperV2 $builder->select('items.*') ->from($this->tableName, 'items') ->innerJoin('items', FeedMapperV2::TABLE_NAME, 'feeds', 'items.feed_id = feeds.id') - ->andWhere('feeds.user_id = :user_id') + ->andWhere('(feeds.user_id = :user_id AND items.shared_by = \'\') OR items.shared_with = :shared_with') ->andWhere('feeds.id = :feed_id') ->andWhere('items.guid_hash = :guid_hash') ->setParameter('user_id', $userId, IQueryBuilder::PARAM_STR) + ->setParameter('shared_with', $userId, IQueryBuilder::PARAM_STR) ->setParameter('feed_id', $feedId, IQueryBuilder::PARAM_INT) ->setParameter('guid_hash', $guidHash, IQueryBuilder::PARAM_STR); @@ -404,8 +406,8 @@ class ItemMapperV2 extends NewsMapperV2 ->innerJoin('items', FeedMapperV2::TABLE_NAME, 'feeds', 'items.feed_id = feeds.id') ->andWhere('items.last_modified >= :updatedSince') ->andWhere('feeds.deleted_at = 0') - ->andWhere('feeds.user_id = :userId') - ->setParameters(['updatedSince' => $updatedSince, 'userId' => $userId]) + ->andWhere('(feeds.user_id = :userId AND items.shared_by = \'\') OR items.shared_with = :sharedWith') + ->setParameters(['updatedSince' => $updatedSince, 'userId' => $userId, 'sharedWith' => $userId]) ->orderBy('items.last_modified', 'DESC') ->addOrderBy('items.id', 'DESC'); @@ -566,7 +568,7 @@ class ItemMapperV2 extends NewsMapperV2 /** * Returns all items shared with a user - * + * * @param string $userId * @param int $limit * @param int $offset @@ -634,9 +636,10 @@ class ItemMapperV2 extends NewsMapperV2 $builder->select('items.*') ->from($this->tableName, 'items') ->innerJoin('items', FeedMapperV2::TABLE_NAME, 'feeds', 'items.feed_id = feeds.id') - ->andWhere('feeds.user_id = :userId') + ->andWhere('(feeds.user_id = :userId AND items.shared_by = \'\') OR items.shared_with = :sharedWith') ->andWhere('feeds.deleted_at = 0') ->setParameter('userId', $userId) + ->setParameter('sharedWith', $userId) ->orderBy('items.last_modified', ($oldestFirst ? 'ASC' : 'DESC')) ->addOrderBy('items.id', ($oldestFirst ? 'ASC' : 'DESC')); -- cgit v1.2.3