summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorAlex Gleason <alex@alexgleason.me>2022-11-05 14:07:37 -0500
committerb <>2024-10-03 19:59:39 +0300
commitb7c91876d2cc027a5a7f8a79ba256f13af623997 (patch)
treec9c033f9558479af3bfcd768e9ccc077374e78b3 /lib
parent4533f171ab5b73e5fc332c8f65fcf1e39e4d6003 (diff)
downloadpleroma-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.ex15
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?",