Add :reject_deletes option to SimplePolicy

This commit is contained in:
Alex Gleason 2020-04-13 13:48:32 -05:00
commit b54c8813d6
No known key found for this signature in database
GPG key ID: 7211D1F99744FBB7
6 changed files with 89 additions and 22 deletions

View file

@ -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