logo

pleroma

My custom branche(s) on git.pleroma.social/pleroma/pleroma
commit: 576368237ce3c8f07acb19ab02f3f9df84b42e4b
parent: 145d6fe6e9f3c9414b1231da7f200e007413b31b
Author: kaniini <nenolod@gmail.com>
Date:   Sat,  5 Jan 2019 22:29:08 +0000

Merge branch 'activitypub-tombstone-fix' into 'develop'

Don't crash on AP request for tombstone

See merge request pleroma/pleroma!630

Diffstat:

Mlib/pleroma/web/activity_pub/activity_pub.ex4++++
Mtest/support/factory.ex13+++++++++++++
Mtest/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 @@ -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 @@ -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 @@ -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