logo

pleroma

My custom branche(s) on git.pleroma.social/pleroma/pleroma
commit: 992145e64ce40ca8eb85367c78df1696ad0e414c
parent: ed5a1bbdfcc8b85330c7d4c8f8e08b6c2599ffa5
Author: rinpatch <rinpatch@sdf.org>
Date:   Thu,  7 Mar 2019 11:31:08 +0000

Merge branch 'bugfix/delete-activity-audience' into 'develop'

expand the audience of delete activities to all recipients of the deleted object

Closes #682

See merge request pleroma/pleroma!891

Diffstat:

Mlib/pleroma/web/activity_pub/activity_pub.ex3++-
Mtest/web/activity_pub/activity_pub_test.exs21+++++++++++++++++++++
2 files changed, 23 insertions(+), 1 deletion(-)

diff --git a/lib/pleroma/web/activity_pub/activity_pub.ex b/lib/pleroma/web/activity_pub/activity_pub.ex @@ -309,12 +309,13 @@ defmodule Pleroma.Web.ActivityPub.ActivityPub do def delete(%Object{data: %{"id" => id, "actor" => actor}} = object, local \\ true) do user = User.get_cached_by_ap_id(actor) + to = object.data["to"] || [] ++ object.data["cc"] || [] data = %{ "type" => "Delete", "actor" => actor, "object" => id, - "to" => [user.follower_address, "https://www.w3.org/ns/activitystreams#Public"] + "to" => to } with {:ok, _} <- Object.delete(object), diff --git a/test/web/activity_pub/activity_pub_test.exs b/test/web/activity_pub/activity_pub_test.exs @@ -691,6 +691,27 @@ defmodule Pleroma.Web.ActivityPub.ActivityPubTest do user = Repo.get(User, user.id) assert user.info.note_count == 10 end + + test "it creates a delete activity and checks that it is also sent to users mentioned by the deleted object" do + user = insert(:user) + note = insert(:note_activity) + + {:ok, object} = + Object.get_by_ap_id(note.data["object"]["id"]) + |> Object.change(%{ + data: %{ + "actor" => note.data["object"]["actor"], + "id" => note.data["object"]["id"], + "to" => [user.ap_id], + "type" => "Note" + } + }) + |> Object.update_and_set_cache() + + {:ok, delete} = ActivityPub.delete(object) + + assert user.ap_id in delete.data["to"] + end end describe "timeline post-processing" do