aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorkaniini <nenolod@gmail.com>2019-05-19 22:30:10 +0000
committerkaniini <nenolod@gmail.com>2019-05-19 22:30:10 +0000
commitb30b51c3b792cc2aaf39902809bea84bd9b574a9 (patch)
treeaac1da84601a5ec4bded9cdd6a43e7749c09cc05 /lib
parent8e9a764dfcde315afd055c8e63543bfca24cc41b (diff)
parent2375e9a95ba9042958ff7e8f75830df4ab53fed2 (diff)
downloadpleroma-b30b51c3b792cc2aaf39902809bea84bd9b574a9.tar.gz
Merge branch 'feature/mrf-simple-report-filtering' into 'develop'
Add report filtering to MRF.SimplePolicy Closes #610 See merge request pleroma/pleroma!1176
Diffstat (limited to 'lib')
-rw-r--r--lib/pleroma/web/activity_pub/mrf/simple_policy.ex13
1 files changed, 12 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 9627c3400..7190652d2 100644
--- a/lib/pleroma/web/activity_pub/mrf/simple_policy.ex
+++ b/lib/pleroma/web/activity_pub/mrf/simple_policy.ex
@@ -94,6 +94,16 @@ defmodule Pleroma.Web.ActivityPub.MRF.SimplePolicy do
{:ok, object}
end
+ defp check_report_removal(%{host: actor_host} = _actor_info, %{"type" => "Flag"} = object) do
+ if actor_host in Pleroma.Config.get([:mrf_simple, :report_removal]) do
+ {:reject, nil}
+ else
+ {:ok, object}
+ end
+ end
+
+ defp check_report_removal(_actor_info, object), do: {:ok, object}
+
@impl true
def filter(object) do
actor_info = URI.parse(object["actor"])
@@ -102,7 +112,8 @@ defmodule Pleroma.Web.ActivityPub.MRF.SimplePolicy do
{:ok, object} <- check_reject(actor_info, object),
{:ok, object} <- check_media_removal(actor_info, object),
{:ok, object} <- check_media_nsfw(actor_info, object),
- {:ok, object} <- check_ftl_removal(actor_info, object) do
+ {:ok, object} <- check_ftl_removal(actor_info, object),
+ {:ok, object} <- check_report_removal(actor_info, object) do
{:ok, object}
else
_e -> {:reject, nil}