aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorkaniini <nenolod@gmail.com>2019-01-05 22:29:08 +0000
committerkaniini <nenolod@gmail.com>2019-01-05 22:29:08 +0000
commit576368237ce3c8f07acb19ab02f3f9df84b42e4b (patch)
tree282b4f640c6c12fbc6d2928970b62f42edd06138
parent145d6fe6e9f3c9414b1231da7f200e007413b31b (diff)
parent2d7da5f4375164aa78e221ab054529a04d09e819 (diff)
downloadpleroma-576368237ce3c8f07acb19ab02f3f9df84b42e4b.tar.gz
Merge branch 'activitypub-tombstone-fix' into 'develop'
Don't crash on AP request for tombstone See merge request pleroma/pleroma!630
-rw-r--r--lib/pleroma/web/activity_pub/activity_pub.ex4
-rw-r--r--test/support/factory.ex13
-rw-r--r--test/web/activity_pub/activity_pub_controller_test.exs12
3 files changed, 29 insertions, 0 deletions
diff --git a/lib/pleroma/web/activity_pub/activity_pub.ex b/lib/pleroma/web/activity_pub/activity_pub.ex
index 4d754de13..4685f6d95 100644
--- a/lib/pleroma/web/activity_pub/activity_pub.ex
+++ b/lib/pleroma/web/activity_pub/activity_pub.ex
@@ -801,6 +801,10 @@ defmodule Pleroma.Web.ActivityPub.ActivityPub do
end
end
+ def is_public?(%Object{data: %{"type" => "Tombstone"}}) do
+ false
+ end
+
def is_public?(activity) do
"https://www.w3.org/ns/activitystreams#Public" in (activity.data["to"] ++
(activity.data["cc"] || []))
diff --git a/test/support/factory.ex b/test/support/factory.ex
index e5c0c5bcc..57fa4a79d 100644
--- a/test/support/factory.ex
+++ b/test/support/factory.ex
@@ -57,6 +57,19 @@ defmodule Pleroma.Factory do
%Pleroma.Object{data: Map.merge(data, %{"to" => [user2.ap_id]})}
end
+ def tombstone_factory do
+ data = %{
+ "type" => "Tombstone",
+ "id" => Pleroma.Web.ActivityPub.Utils.generate_object_id(),
+ "formerType" => "Note",
+ "deleted" => DateTime.utc_now() |> DateTime.to_iso8601()
+ }
+
+ %Pleroma.Object{
+ data: data
+ }
+ end
+
def direct_note_activity_factory do
dm = insert(:direct_note)
diff --git a/test/web/activity_pub/activity_pub_controller_test.exs b/test/web/activity_pub/activity_pub_controller_test.exs
index 620e03674..7d1fe184e 100644
--- a/test/web/activity_pub/activity_pub_controller_test.exs
+++ b/test/web/activity_pub/activity_pub_controller_test.exs
@@ -75,6 +75,18 @@ defmodule Pleroma.Web.ActivityPub.ActivityPubControllerTest do
assert json_response(conn, 404)
end
+
+ test "it returns 404 for tombstone objects", %{conn: conn} do
+ tombstone = insert(:tombstone)
+ uuid = String.split(tombstone.data["id"], "/") |> List.last()
+
+ conn =
+ conn
+ |> put_req_header("accept", "application/activity+json")
+ |> get("/objects/#{uuid}")
+
+ assert json_response(conn, 404)
+ end
end
describe "/inbox" do