diff --git a/keyserver/src/fetchers/thread-fetchers.js b/keyserver/src/fetchers/thread-fetchers.js --- a/keyserver/src/fetchers/thread-fetchers.js +++ b/keyserver/src/fetchers/thread-fetchers.js @@ -117,7 +117,7 @@ t.community, t.depth, t.color, t.description, t.type, t.creation_time, t.source_message, t.replies_count, t.avatar, t.pinned_count, m.user, m.role, m.permissions, m.subscription, - m.last_read_message < m.last_message AS unread, m.sender, + m.last_read_message < m.last_message_for_unread_check AS unread, m.sender, up.id AS upload_id, up.secret AS upload_secret, up.extra AS upload_extra ` .append(primaryFetchClause) diff --git a/keyserver/src/push/rescind.js b/keyserver/src/push/rescind.js --- a/keyserver/src/push/rescind.js +++ b/keyserver/src/push/rescind.js @@ -64,7 +64,7 @@ ) AS unread_count FROM notifications n LEFT JOIN memberships m ON m.user = n.user - AND m.last_message > m.last_read_message + AND m.last_message_for_unread_check > m.last_read_message AND m.role > 0 AND JSON_EXTRACT(subscription, ${notificationExtractString}) AND JSON_EXTRACT(permissions, ${visPermissionExtractString}) diff --git a/keyserver/src/push/utils.js b/keyserver/src/push/utils.js --- a/keyserver/src/push/utils.js +++ b/keyserver/src/push/utils.js @@ -205,7 +205,8 @@ const query = SQL` SELECT user, COUNT(thread) AS unread_count FROM memberships - WHERE user IN (${userIDs}) AND last_message > last_read_message + WHERE user IN (${userIDs}) + AND last_message_for_unread_check > last_read_message AND role > 0 AND JSON_EXTRACT(permissions, ${visPermissionExtractString}) AND JSON_EXTRACT(subscription, ${notificationExtractString})