diff options
author | Alex Gleason <alex@alexgleason.me> | 2022-11-05 14:07:37 -0500 |
---|---|---|
committer | b <> | 2024-10-03 19:59:39 +0300 |
commit | b7c91876d2cc027a5a7f8a79ba256f13af623997 (patch) | |
tree | c9c033f9558479af3bfcd768e9ccc077374e78b3 /lib | |
parent | 4533f171ab5b73e5fc332c8f65fcf1e39e4d6003 (diff) | |
download | pleroma-b7c91876d2cc027a5a7f8a79ba256f13af623997.tar.gz pleroma-b7c91876d2cc027a5a7f8a79ba256f13af623997.zip |
RemoteReportPolicy: add `:reject_all` option, fix tests
Diffstat (limited to 'lib')
-rw-r--r-- | lib/pleroma/web/activity_pub/mrf/remote_report_policy.ex | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/lib/pleroma/web/activity_pub/mrf/remote_report_policy.ex b/lib/pleroma/web/activity_pub/mrf/remote_report_policy.ex index 3cf47e3ed..0bd83d8f0 100644 --- a/lib/pleroma/web/activity_pub/mrf/remote_report_policy.ex +++ b/lib/pleroma/web/activity_pub/mrf/remote_report_policy.ex @@ -7,6 +7,7 @@ defmodule Pleroma.Web.ActivityPub.MRF.RemoteReportPolicy do @impl true def filter(%{"type" => "Flag"} = object) do with {_, false} <- {:local, local?(object)}, + {:ok, _} <- maybe_reject_all(object), {:ok, _} <- maybe_reject_anonymous(object), {:ok, _} <- maybe_reject_empty_message(object) do {:ok, object} @@ -19,6 +20,14 @@ defmodule Pleroma.Web.ActivityPub.MRF.RemoteReportPolicy do def filter(object), do: {:ok, object} + defp maybe_reject_all(object) do + if Config.get([:mrf_remote_report, :reject_all]) do + {:reject, "[RemoteReportPolicy] Remote report"} + else + {:ok, object} + end + end + defp maybe_reject_anonymous(%{"actor" => actor} = object) do with true <- Config.get([:mrf_remote_report, :reject_anonymous]), %URI{path: "/actor"} <- URI.parse(actor) do @@ -63,6 +72,12 @@ defmodule Pleroma.Web.ActivityPub.MRF.RemoteReportPolicy do description: "Drop remote reports if they don't contain enough information.", children: [ %{ + key: :reject_all, + type: :boolean, + description: "Reject all remote reports? (this option takes precedence)", + suggestions: [false] + }, + %{ key: :reject_anonymous, type: :boolean, description: "Reject anonymous remote reports?", |