projects
/
akkoma
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'develop' into rename/pleroma_activity_consistency
[akkoma]
/
lib
/
pleroma
/
web
/
activity_pub
/
mrf
/
hellthread_policy.ex
diff --git
a/lib/pleroma/web/activity_pub/mrf/hellthread_policy.ex
b/lib/pleroma/web/activity_pub/mrf/hellthread_policy.ex
index edcbc5219eb63865be57690ad428a758d08d8d7a..a3f516ae7fde83b0680c7ec6f9f98ad8c9a72a3c 100644
(file)
--- a/
lib/pleroma/web/activity_pub/mrf/hellthread_policy.ex
+++ b/
lib/pleroma/web/activity_pub/mrf/hellthread_policy.ex
@@
-1,14
+1,22
@@
+# Pleroma: A lightweight social networking server
+# Copyright © 2017-2019 Pleroma Authors <https://pleroma.social/>
+# SPDX-License-Identifier: AGPL-3.0-only
+
defmodule Pleroma.Web.ActivityPub.MRF.HellthreadPolicy do
@behaviour Pleroma.Web.ActivityPub.MRF
@impl true
defmodule Pleroma.Web.ActivityPub.MRF.HellthreadPolicy do
@behaviour Pleroma.Web.ActivityPub.MRF
@impl true
- def filter(object) do
- policy = Pleroma.Config.get(:mrf_hellthreadmitigation)
+ def filter(%{"type" => "Create"} = object) do
+ threshold = Pleroma.Config.get([:mrf_hellthread, :threshold])
+ recipients = (object["to"] || []) ++ (object["cc"] || [])
- if length(
object["to"]) + length(object["cc"]) > Keyword.get(policy, :threshold)
do
+ if length(
recipients) > threshold
do
{:reject, nil}
else
{:ok, object}
end
end
{:reject, nil}
else
{:ok, object}
end
end
+
+ @impl true
+ def filter(object), do: {:ok, object}
end
end