diff options
author | William Pitcock <nenolod@dereferenced.org> | 2019-06-19 16:33:49 +0000 |
---|---|---|
committer | William Pitcock <nenolod@dereferenced.org> | 2019-06-19 16:33:49 +0000 |
commit | 21dacd4b15f92726f8a26fb4ec7b06b7f98d97f1 (patch) | |
tree | 17b330ef2165c52e6ce2404ffd553dd56d7dc1d3 | |
parent | 736d8ad6be1ccb1514a189ccf2384e9699ea107e (diff) | |
download | pleroma-21dacd4b15f92726f8a26fb4ec7b06b7f98d97f1.tar.gz |
unbreak polls
-rw-r--r-- | lib/pleroma/web/activity_pub/mrf/anti_link_spam_policy.ex | 2 | ||||
-rw-r--r-- | test/web/activity_pub/mrf/anti_link_spam_policy_test.exs | 20 |
2 files changed, 22 insertions, 0 deletions
diff --git a/lib/pleroma/web/activity_pub/mrf/anti_link_spam_policy.ex b/lib/pleroma/web/activity_pub/mrf/anti_link_spam_policy.ex index 33ea61f5c..14e5955ee 100644 --- a/lib/pleroma/web/activity_pub/mrf/anti_link_spam_policy.ex +++ b/lib/pleroma/web/activity_pub/mrf/anti_link_spam_policy.ex @@ -20,6 +20,8 @@ defmodule Pleroma.Web.ActivityPub.MRF.AntiLinkSpamPolicy do |> length() > 0 end + defp contains_links?(_), do: false + def filter(%{"type" => "Create", "actor" => actor, "object" => object} = message) do with {:ok, %User{} = u} <- User.get_or_fetch_by_ap_id(actor), {:contains_links, true} <- {:contains_links, contains_links?(object)}, diff --git a/test/web/activity_pub/mrf/anti_link_spam_policy_test.exs b/test/web/activity_pub/mrf/anti_link_spam_policy_test.exs index a456e863c..284c13336 100644 --- a/test/web/activity_pub/mrf/anti_link_spam_policy_test.exs +++ b/test/web/activity_pub/mrf/anti_link_spam_policy_test.exs @@ -22,6 +22,14 @@ defmodule Pleroma.Web.ActivityPub.MRF.AntiLinkSpamPolicyTest do } } + @response_message %{ + "type" => "Create", + "object" => %{ + "name" => "yes", + "type" => "Answer" + } + } + describe "with new user" do test "it allows posts without links" do user = insert(:user) @@ -117,4 +125,16 @@ defmodule Pleroma.Web.ActivityPub.MRF.AntiLinkSpamPolicyTest do {:reject, _} = AntiLinkSpamPolicy.filter(message) end end + + describe "with contentless-objects" do + test "it does not reject them or error out" do + user = insert(:user, info: %{note_count: 1}) + + message = + @response_message + |> Map.put("actor", user.ap_id) + + {:ok, _message} = AntiLinkSpamPolicy.filter(message) + end + end end |