diff options
author | Sergey Suprunenko <suprunenko.s@gmail.com> | 2019-08-03 18:12:38 +0000 |
---|---|---|
committer | Ariadne Conill <ariadne@dereferenced.org> | 2019-08-14 01:50:21 +0000 |
commit | 1310cdc24f31b8fb6858b0c70514a4e316638dbe (patch) | |
tree | a06e03e0bb614aa4428996af7bb71e0215b317dc | |
parent | 54d4ceec5ce82ecea8bfd2fade7e618feca8a211 (diff) | |
download | pleroma-1310cdc24f31b8fb6858b0c70514a4e316638dbe.tar.gz |
Handle MRF rejections of incoming AP activities
-rw-r--r-- | lib/pleroma/web/activity_pub/activity_pub.ex | 3 | ||||
-rw-r--r-- | test/web/federator_test.exs | 16 |
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 |