From b27226d4ae011a130f07433683606e139424a201 Mon Sep 17 00:00:00 2001 From: Marco Nassabain Date: Thu, 28 Jan 2021 17:24:15 +0100 Subject: =?UTF-8?q?=F0=9F=9A=91=20Fix=20bug=20-=20other=20user=20feeds=20s?= =?UTF-8?q?how=20for=20shared=20item=20-=20findAllFeeds=20doesn't=20return?= =?UTF-8?q?=20feeds=20of=20shared=20articles=20-=20Disable=20feed=20cache?= =?UTF-8?q?=20handling=20for=20shared=20items?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Marco Nassabain --- js/controller/ContentController.js | 14 ++++++++++---- lib/Db/FeedMapper.php | 6 ++---- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/js/controller/ContentController.js b/js/controller/ContentController.js index c87362557..97520f72c 100644 --- a/js/controller/ContentController.js +++ b/js/controller/ContentController.js @@ -89,7 +89,9 @@ app.controller('ContentController', function (Publisher, FeedResource, ItemResou if (!item.keepUnread && item.unread === true) { ItemResource.markItemRead(itemId); - FeedResource.markItemOfFeedRead(item.feedId); + if (item.isShared === false) { + FeedResource.markItemOfFeedRead(item.feedId); + } } }; @@ -100,8 +102,10 @@ app.controller('ContentController', function (Publisher, FeedResource, ItemResou this.toggleKeepUnread = function (itemId) { var item = ItemResource.get(itemId); if (!item.unread) { - FeedResource.markItemOfFeedUnread(item.feedId); ItemResource.markItemRead(itemId, false); + if (item.isShared === false) { + FeedResource.markItemOfFeedUnread(item.feedId); + } } item.keepUnread = !item.keepUnread; @@ -136,8 +140,10 @@ app.controller('ContentController', function (Publisher, FeedResource, ItemResou itemIds.forEach(function (itemId) { var item = ItemResource.get(itemId); if (!item.keepUnread) { - ids.push(itemId); - feedIds.push(item.feedId); + if (item.isShared === false) { + ids.push(itemId); + feedIds.push(item.feedId); + } } }); diff --git a/lib/Db/FeedMapper.php b/lib/Db/FeedMapper.php index 45901b8d0..917e282c4 100644 --- a/lib/Db/FeedMapper.php +++ b/lib/Db/FeedMapper.php @@ -76,9 +76,7 @@ class FeedMapper extends NewsMapper // POSSIBLE SQL INJECTION RISK WHEN MODIFIED WITHOUT THOUGHT. // think twice when changing this 'AND `items`.`unread` = ? ' . - 'WHERE (`feeds`.`user_id` = ? OR `feeds`.`id` IN (' . - 'SELECT `feed_id` FROM `*PREFIX*news_items` WHERE `shared_with` = ?)' . - ') ' . + 'WHERE `feeds`.`user_id` = ? ' . 'AND (`feeds`.`folder_id` IS NULL ' . 'OR `folders`.`deleted_at` = 0 ' . ') ' . @@ -86,7 +84,7 @@ class FeedMapper extends NewsMapper 'GROUP BY `feeds`.`id` ' . ') `item_numbers` ' . 'ON `item_numbers`.`id` = `feeds`.`id` '; - $params = [true, $userId, $userId]; + $params = [true, $userId]; return $this->findEntities($sql, $params); } -- cgit v1.2.3