logo

pleroma

My custom branche(s) on git.pleroma.social/pleroma/pleroma
commit: 09478c9cf713eefdfdf585f0196efdf00b9c0baf
parent: 6db9f7cdb3adeda547b6e3e9ca887b685344351a
Author: Haelwenn <contact+git.pleroma.social@hacktivis.me>
Date:   Fri, 26 Jun 2020 16:59:46 +0000

Merge branch '1258-anti-link-spam-exemption' into 'develop'

AntiSpamLinkPolicy: Exempt local users.

Closes #1258

See merge request pleroma/pleroma!2686

Diffstat:

Mlib/pleroma/web/activity_pub/mrf/anti_link_spam_policy.ex5++++-
Mtest/web/activity_pub/mrf/anti_link_spam_policy_test.exs16++++++++++++++--
2 files changed, 18 insertions(+), 3 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 @@ -27,11 +27,14 @@ defmodule Pleroma.Web.ActivityPub.MRF.AntiLinkSpamPolicy do @impl true def filter(%{"type" => "Create", "actor" => actor, "object" => object} = message) do - with {:ok, %User{} = u} <- User.get_or_fetch_by_ap_id(actor), + with {:ok, %User{local: false} = u} <- User.get_or_fetch_by_ap_id(actor), {:contains_links, true} <- {:contains_links, contains_links?(object)}, {:old_user, true} <- {:old_user, old_user?(u)} do {:ok, message} else + {:ok, %User{local: true}} -> + {:ok, message} + {:contains_links, false} -> {:ok, message} 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 @@ -33,7 +33,7 @@ defmodule Pleroma.Web.ActivityPub.MRF.AntiLinkSpamPolicyTest do describe "with new user" do test "it allows posts without links" do - user = insert(:user) + user = insert(:user, local: false) assert user.note_count == 0 @@ -45,7 +45,7 @@ defmodule Pleroma.Web.ActivityPub.MRF.AntiLinkSpamPolicyTest do end test "it disallows posts with links" do - user = insert(:user) + user = insert(:user, local: false) assert user.note_count == 0 @@ -55,6 +55,18 @@ defmodule Pleroma.Web.ActivityPub.MRF.AntiLinkSpamPolicyTest do {:reject, _} = AntiLinkSpamPolicy.filter(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) + + {:ok, _message} = AntiLinkSpamPolicy.filter(message) + end end describe "with old user" do