forked from mirrors/akkoma
ActivityPub: Show own replies to muted users.
Aligns mute with block behavior.
This commit is contained in:
parent
b48724afcd
commit
7a2f100061
|
@ -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
|
||||||
|
|
|
@ -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)
|
||||||
|
|
Loading…
Reference in a new issue