summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/Db/ItemMapperV2.php15
1 files changed, 9 insertions, 6 deletions
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'));