aboutsummaryrefslogtreecommitdiff
path: root/lib/pleroma/conversation.ex
diff options
context:
space:
mode:
authoreugenijm <eugenijm@protonmail.com>2019-10-25 21:29:23 +0300
committereugenijm <eugenijm@protonmail.com>2019-10-26 02:29:18 +0300
commit058065448510af59f550ec7d7f99b81388bc7a40 (patch)
treeebfab2d6e509637607f8c42839abd1c15c0bc5d6 /lib/pleroma/conversation.ex
parent653054d301b88070cd60f6b0f8a0b188dee81cba (diff)
downloadpleroma-058065448510af59f550ec7d7f99b81388bc7a40.tar.gz
Mark the conversations with the blocked user as read and update the blocking user's `unread_conversation_count`.
Since the conversations with the blocked user are invisible, they are excluded from the blocking user's `unread_conversation_count`.
Diffstat (limited to 'lib/pleroma/conversation.ex')
-rw-r--r--lib/pleroma/conversation.ex8
1 files changed, 7 insertions, 1 deletions
diff --git a/lib/pleroma/conversation.ex b/lib/pleroma/conversation.ex
index 098016af2..ade3a526a 100644
--- a/lib/pleroma/conversation.ex
+++ b/lib/pleroma/conversation.ex
@@ -67,7 +67,13 @@ defmodule Pleroma.Conversation do
participations =
Enum.map(users, fn user ->
- User.increment_unread_conversation_count(conversation, user)
+ invisible_conversation = Enum.any?(users, &User.blocks?(user, &1))
+
+ unless invisible_conversation do
+ User.increment_unread_conversation_count(conversation, user)
+ end
+
+ opts = Keyword.put(opts, :invisible_conversation, invisible_conversation)
{:ok, participation} =
Participation.create_for_user_and_conversation(user, conversation, opts)