diff options
author | Haelwenn <contact+git.pleroma.social@hacktivis.me> | 2020-10-19 04:26:35 +0000 |
---|---|---|
committer | Haelwenn <contact+git.pleroma.social@hacktivis.me> | 2020-10-19 04:26:35 +0000 |
commit | 0495a07dc77d81abf46cbe166ae3fec14f705809 (patch) | |
tree | 106033d9ae6ad32875bcda54599058c91e1129e6 | |
parent | be611b143bf2840c039aaf63dbf1a73d9f9daf7b (diff) | |
parent | 7a2f100061913ec59db9957893eb92bb2d150dc4 (diff) | |
download | pleroma-0495a07dc77d81abf46cbe166ae3fec14f705809.tar.gz pleroma-0495a07dc77d81abf46cbe166ae3fec14f705809.zip |
Merge branch '2239-mute-fixes' into 'develop'
ActivityPub: Show own replies to muted users.
Closes #2239
See merge request pleroma/pleroma!3084
-rw-r--r-- | lib/pleroma/web/activity_pub/activity_pub.ex | 9 | ||||
-rw-r--r-- | test/pleroma/web/activity_pub/activity_pub_test.exs | 16 |
2 files changed, 24 insertions, 1 deletions
diff --git a/lib/pleroma/web/activity_pub/activity_pub.ex b/lib/pleroma/web/activity_pub/activity_pub.ex index 9c33775f2..d17c892a7 100644 --- a/lib/pleroma/web/activity_pub/activity_pub.ex +++ b/lib/pleroma/web/activity_pub/activity_pub.ex @@ -827,7 +827,14 @@ defmodule Pleroma.Web.ActivityPub.ActivityPub do query = from([activity] in query, where: fragment("not (? = ANY(?))", activity.actor, ^mutes), - where: fragment("not (?->'to' \\?| ?)", activity.data, ^mutes) + where: + fragment( + "not (?->'to' \\?| ?) or ? = ?", + activity.data, + ^mutes, + activity.actor, + ^user.ap_id + ) ) unless opts[:skip_preload] do diff --git a/test/pleroma/web/activity_pub/activity_pub_test.exs b/test/pleroma/web/activity_pub/activity_pub_test.exs index 1a8a844ca..e6b6086e6 100644 --- a/test/pleroma/web/activity_pub/activity_pub_test.exs +++ b/test/pleroma/web/activity_pub/activity_pub_test.exs @@ -752,6 +752,22 @@ defmodule Pleroma.Web.ActivityPub.ActivityPubTest do refute repeat_activity in activities end + test "returns your own posts regardless of mute" do + user = insert(:user) + muted = insert(:user) + + {:ok, muted_post} = CommonAPI.post(muted, %{status: "Im stupid"}) + + {:ok, reply} = + CommonAPI.post(user, %{status: "I'm muting you", in_reply_to_status_id: muted_post.id}) + + {:ok, _} = User.mute(user, muted) + + [activity] = ActivityPub.fetch_activities([], %{muting_user: user, skip_preload: true}) + + assert activity.id == reply.id + end + test "doesn't return muted activities" do activity_one = insert(:note_activity) activity_two = insert(:note_activity) |