aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorAlex Gleason <alex@alexgleason.me>2020-04-13 13:48:32 -0500
committerAlex Gleason <alex@alexgleason.me>2020-04-20 10:11:06 -0500
commitb54c8813d632cb44c7deb207e91bd32f01f33794 (patch)
tree5150c7ce7f0e5affbdfae42cfa965a115926fc89 /lib
parent9a3c74b244bce6097a8c6da99692bfc9973e1ec8 (diff)
downloadpleroma-b54c8813d632cb44c7deb207e91bd32f01f33794.tar.gz
Add :reject_deletes option to SimplePolicy
Diffstat (limited to 'lib')
-rw-r--r--lib/pleroma/web/activity_pub/mrf/simple_policy.ex14
1 files changed, 13 insertions, 1 deletions
diff --git a/lib/pleroma/web/activity_pub/mrf/simple_policy.ex b/lib/pleroma/web/activity_pub/mrf/simple_policy.ex
index b23f263f5..b7dcb1b86 100644
--- a/lib/pleroma/web/activity_pub/mrf/simple_policy.ex
+++ b/lib/pleroma/web/activity_pub/mrf/simple_policy.ex
@@ -149,7 +149,19 @@ defmodule Pleroma.Web.ActivityPub.MRF.SimplePolicy do
defp check_banner_removal(_actor_info, object), do: {:ok, object}
@impl true
- def filter(%{"type" => "Delete"} = object), do: {:ok, object}
+ def filter(%{"type" => "Delete", "actor" => actor} = object) do
+ %{host: actor_host} = URI.parse(actor)
+
+ reject_deletes =
+ Pleroma.Config.get([:mrf_simple, :reject_deletes])
+ |> MRF.subdomains_regex()
+
+ if MRF.subdomain_match?(reject_deletes, actor_host) do
+ {:reject, nil}
+ else
+ {:ok, object}
+ end
+ end
@impl true
def filter(%{"actor" => actor} = object) do