diff options
| -rw-r--r-- | lib/pleroma/web/activity_pub/mrf/anti_link_spam_policy.ex | 3 | ||||
| -rw-r--r-- | test/pleroma/web/activity_pub/mrf/anti_link_spam_policy_test.exs | 33 | 
2 files changed, 32 insertions, 4 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 f0504ead4..3ec9c52ee 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 @@ -9,6 +9,9 @@ defmodule Pleroma.Web.ActivityPub.MRF.AntiLinkSpamPolicy do    require Logger +  @impl true +  def history_awareness, do: :auto +    # has the user successfully posted before?    defp old_user?(%User{} = u) do      u.note_count > 0 || u.follower_count > 0 diff --git a/test/pleroma/web/activity_pub/mrf/anti_link_spam_policy_test.exs b/test/pleroma/web/activity_pub/mrf/anti_link_spam_policy_test.exs index 8c7d4de5c..303d7ca1e 100644 --- a/test/pleroma/web/activity_pub/mrf/anti_link_spam_policy_test.exs +++ b/test/pleroma/web/activity_pub/mrf/anti_link_spam_policy_test.exs @@ -7,6 +7,7 @@ defmodule Pleroma.Web.ActivityPub.MRF.AntiLinkSpamPolicyTest do    import Pleroma.Factory    import ExUnit.CaptureLog +  alias Pleroma.Web.ActivityPub.MRF    alias Pleroma.Web.ActivityPub.MRF.AntiLinkSpamPolicy    @linkless_message %{ @@ -49,15 +50,39 @@ defmodule Pleroma.Web.ActivityPub.MRF.AntiLinkSpamPolicyTest do        assert user.note_count == 0 +      message = %{ +        "type" => "Create", +        "actor" => user.ap_id, +        "object" => %{ +          "formerRepresentations" => %{ +            "type" => "OrderedCollection", +            "orderedItems" => [ +              %{ +                "content" => "<a href='https://example.com'>hi world!</a>" +              } +            ] +          }, +          "content" => "mew" +        } +      } + +      {:reject, _} = MRF.filter_one(AntiLinkSpamPolicy, message) +    end + +    test "it allows posts with links for local users" do +      user = insert(:user) + +      assert user.note_count == 0 +        message =          @linkful_message          |> Map.put("actor", user.ap_id) -      {:reject, _} = AntiLinkSpamPolicy.filter(message) +      {:ok, _message} = AntiLinkSpamPolicy.filter(message)      end -    test "it allows posts with links for local users" do -      user = insert(:user) +    test "it disallows posts with links in history" do +      user = insert(:user, local: false)        assert user.note_count == 0 @@ -65,7 +90,7 @@ defmodule Pleroma.Web.ActivityPub.MRF.AntiLinkSpamPolicyTest do          @linkful_message          |> Map.put("actor", user.ap_id) -      {:ok, _message} = AntiLinkSpamPolicy.filter(message) +      {:reject, _} = AntiLinkSpamPolicy.filter(message)      end    end  | 
