Mastodon API: Fix thread mute detection
authorrinpatch <rinpatch@sdf.org>
Sat, 10 Aug 2019 13:27:46 +0000 (16:27 +0300)
committerrinpatch <rinpatch@sdf.org>
Sat, 10 Aug 2019 13:27:46 +0000 (16:27 +0300)
It was calling CommonAPI.thread_muted? with post author's account
instead of viewer's one.

CHANGELOG.md
lib/pleroma/web/mastodon_api/views/status_view.ex
test/web/mastodon_api/mastodon_api_controller_test.exs

index dccc3696593c0f1e7eefb487150c96b5f46e92d4..31caef4995279a1ff0a10f180194ed1ff7430b63 100644 (file)
@@ -26,6 +26,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
 - Federation/MediaProxy not working with instances that have wrong certificate order
 - Mastodon API: Handling of search timeouts (`/api/v1/search` and `/api/v2/search`)
 - Mastodon API: Embedded relationships not being properly rendered in the Account entity of Status entity
+- Mastodon API: `muted` in the Status entity, using author's account to determine if the tread was muted
 - Mastodon API: Add `account_id`, `type`, `offset`, and `limit` to search API (`/api/v1/search` and `/api/v2/search`)
 - Mastodon API, streaming: Fix filtering of notifications based on blocks/mutes/thread mutes
 - ActivityPub C2S: follower/following collection pages being inaccessible even when authentifucated if `hide_followers`/ `hide_follows` was set
index 80df9b2ace5ea6b8690454c9aebfc7ca3d4349e5..02819e1166981190d37d7b7b2ed47d3666d38baa 100644 (file)
@@ -168,7 +168,7 @@ defmodule Pleroma.Web.MastodonAPI.StatusView do
     thread_muted? =
       case activity.thread_muted? do
         thread_muted? when is_boolean(thread_muted?) -> thread_muted?
-        nil -> CommonAPI.thread_muted?(user, activity)
+        nil -> (opts[:for] && CommonAPI.thread_muted?(opts[:for], activity)) || false
       end
 
     attachment_data = object.data["attachment"] || []
index e49c4cc2228f652247c55ed8e27fc582a2e5bca8..b023d1e4f32be715c6ca611f10606d2d83ab3d68 100644 (file)
@@ -2901,8 +2901,10 @@ defmodule Pleroma.Web.MastodonAPI.MastodonAPIControllerTest do
 
   describe "conversation muting" do
     setup do
+      post_user = insert(:user)
       user = insert(:user)
-      {:ok, activity} = CommonAPI.post(user, %{"status" => "HIE"})
+
+      {:ok, activity} = CommonAPI.post(post_user, %{"status" => "HIE"})
 
       [user: user, activity: activity]
     end