|
|
@@ -177,6 +177,14 @@ defmodule Pleroma.Web.ActivityPub.MRF.SimplePolicy do |
|
|
|
|
|
|
|
defp check_banner_removal(_actor_info, object), do: {:ok, object} |
|
|
|
|
|
|
|
defp check_object(%{"object" => object} = activity) do |
|
|
|
with {:ok, _object} <- filter(object) do |
|
|
|
{:ok, activity} |
|
|
|
end |
|
|
|
end |
|
|
|
|
|
|
|
defp check_object(object), do: {:ok, object} |
|
|
|
|
|
|
|
@impl true |
|
|
|
def filter(%{"type" => "Delete", "actor" => actor} = object) do |
|
|
|
%{host: actor_host} = URI.parse(actor) |
|
|
@@ -202,7 +210,8 @@ defmodule Pleroma.Web.ActivityPub.MRF.SimplePolicy do |
|
|
|
{:ok, object} <- check_media_nsfw(actor_info, object), |
|
|
|
{:ok, object} <- check_ftl_removal(actor_info, object), |
|
|
|
{:ok, object} <- check_followers_only(actor_info, object), |
|
|
|
{:ok, object} <- check_report_removal(actor_info, object) do |
|
|
|
{:ok, object} <- check_report_removal(actor_info, object), |
|
|
|
{:ok, object} <- check_object(object) do |
|
|
|
{:ok, object} |
|
|
|
else |
|
|
|
{:reject, nil} -> {:reject, "[SimplePolicy]"} |
|
|
@@ -227,6 +236,19 @@ defmodule Pleroma.Web.ActivityPub.MRF.SimplePolicy do |
|
|
|
end |
|
|
|
end |
|
|
|
|
|
|
|
def filter(object) when is_binary(object) do |
|
|
|
uri = URI.parse(object) |
|
|
|
|
|
|
|
with {:ok, object} <- check_accept(uri, object), |
|
|
|
{:ok, object} <- check_reject(uri, object) do |
|
|
|
{:ok, object} |
|
|
|
else |
|
|
|
{:reject, nil} -> {:reject, "[SimplePolicy]"} |
|
|
|
{:reject, _} = e -> e |
|
|
|
_ -> {:reject, "[SimplePolicy]"} |
|
|
|
end |
|
|
|
end |
|
|
|
|
|
|
|
def filter(object), do: {:ok, object} |
|
|
|
|
|
|
|
@impl true |
|
|
|