Merge branch '2239-mute-fixes' into 'develop'

ActivityPub: Show own replies to muted users.

Closes #2239

See merge request pleroma/pleroma!3084
This commit is contained in:
Haelwenn 2020-10-19 04:26:35 +00:00
commit 0495a07dc7
2 changed files with 24 additions and 1 deletions

View file

@ -827,7 +827,14 @@ defp restrict_muted(query, %{muting_user: %User{} = user} = opts) do
query = query =
from([activity] in query, from([activity] in query,
where: fragment("not (? = ANY(?))", activity.actor, ^mutes), 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 unless opts[:skip_preload] do

View file

@ -752,6 +752,22 @@ test "does return activities from followed users on blocked domains" do
refute repeat_activity in activities refute repeat_activity in activities
end 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 test "doesn't return muted activities" do
activity_one = insert(:note_activity) activity_one = insert(:note_activity)
activity_two = insert(:note_activity) activity_two = insert(:note_activity)