aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/pleroma/web/activity_pub/activity_pub.ex5
-rw-r--r--test/web/activity_pub/activity_pub_test.exs10
2 files changed, 14 insertions, 1 deletions
diff --git a/lib/pleroma/web/activity_pub/activity_pub.ex b/lib/pleroma/web/activity_pub/activity_pub.ex
index 8d3116839..3650d330a 100644
--- a/lib/pleroma/web/activity_pub/activity_pub.ex
+++ b/lib/pleroma/web/activity_pub/activity_pub.ex
@@ -305,11 +305,14 @@ 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"] ||
+ [] ++ [user.follower_address, "https://www.w3.org/ns/activitystreams#Public"]
+
data = %{
"type" => "Delete",
"actor" => actor,
"object" => id,
- "to" => [user.follower_address, "https://www.w3.org/ns/activitystreams#Public"]
+ "to" => Enum.uniq(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
index a6f8b822a..0abb18303 100644
--- a/test/web/activity_pub/activity_pub_test.exs
+++ b/test/web/activity_pub/activity_pub_test.exs
@@ -591,6 +591,16 @@ defmodule Pleroma.Web.ActivityPub.ActivityPubTest do
assert Repo.get(Object, object.id).data["type"] == "Tombstone"
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)
+ object = Object.get_by_ap_id(note.data["object"]["id"])
+ object = Kernel.put_in(object.data["to"], [user.ap_id])
+ {:ok, delete} = ActivityPub.delete(object)
+
+ assert user.ap_id in delete.data["to"]
+ end
end
describe "timeline post-processing" do