summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey Suprunenko <suprunenko.s@gmail.com>2019-08-03 18:12:38 +0000
committerAriadne Conill <ariadne@dereferenced.org>2019-08-14 01:50:21 +0000
commit1310cdc24f31b8fb6858b0c70514a4e316638dbe (patch)
treea06e03e0bb614aa4428996af7bb71e0215b317dc
parent54d4ceec5ce82ecea8bfd2fade7e618feca8a211 (diff)
Handle MRF rejections of incoming AP activities
-rw-r--r--lib/pleroma/web/activity_pub/activity_pub.ex3
-rw-r--r--test/web/federator_test.exs16
2 files changed, 19 insertions, 0 deletions
diff --git a/lib/pleroma/web/activity_pub/activity_pub.ex b/lib/pleroma/web/activity_pub/activity_pub.ex
index fd5521c98..fcecbe21d 100644
--- a/lib/pleroma/web/activity_pub/activity_pub.ex
+++ b/lib/pleroma/web/activity_pub/activity_pub.ex
@@ -274,6 +274,9 @@ defmodule Pleroma.Web.ActivityPub.ActivityPub do
else
{:fake, true, activity} ->
{:ok, activity}
+
+ {:error, message} ->
+ {:error, message}
end
end
diff --git a/test/web/federator_test.exs b/test/web/federator_test.exs
index 0f43bc8f2..e42d376cb 100644
--- a/test/web/federator_test.exs
+++ b/test/web/federator_test.exs
@@ -213,5 +213,21 @@ defmodule Pleroma.Web.FederatorTest do
:error = Federator.incoming_ap_doc(params)
end
+
+ test "it does not crash if MRF rejects the post" do
+ policies = Pleroma.Config.get([:instance, :rewrite_policy])
+ mrf_keyword_policy = Pleroma.Config.get(:mrf_keyword)
+ Pleroma.Config.put([:mrf_keyword, :reject], ["lain"])
+ Pleroma.Config.put([:instance, :rewrite_policy], Pleroma.Web.ActivityPub.MRF.KeywordPolicy)
+
+ params =
+ File.read!("test/fixtures/mastodon-post-activity.json")
+ |> Poison.decode!()
+
+ assert Federator.incoming_ap_doc(params) == :error
+
+ Pleroma.Config.put([:instance, :rewrite_policy], policies)
+ Pleroma.Config.put(:mrf_keyword, mrf_keyword_policy)
+ end
end
end