diff options
author | kaniini <nenolod@gmail.com> | 2018-12-29 11:46:06 +0000 |
---|---|---|
committer | kaniini <nenolod@gmail.com> | 2018-12-29 11:46:06 +0000 |
commit | 3dc5f04976293fbcedfc01281f89c4f54c995d59 (patch) | |
tree | a5f7fc71bdd0e9a77874d56b8034c7c181883d97 /lib | |
parent | dd8f2196f62ab4d4cdec67bdb2b434a317a3f396 (diff) | |
parent | 9c782e59ddac5fa01cd5b2517f282b283f01bc1d (diff) | |
download | pleroma-3dc5f04976293fbcedfc01281f89c4f54c995d59.tar.gz |
Merge branch 'carrot-bullying' into 'develop'
Add some hard limits on inserted activities.
See merge request pleroma/pleroma!595
Diffstat (limited to 'lib')
-rw-r--r-- | lib/pleroma/web/activity_pub/activity_pub.ex | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/lib/pleroma/web/activity_pub/activity_pub.ex b/lib/pleroma/web/activity_pub/activity_pub.ex index 2d4cc9f68..167471b7b 100644 --- a/lib/pleroma/web/activity_pub/activity_pub.ex +++ b/lib/pleroma/web/activity_pub/activity_pub.ex @@ -56,10 +56,18 @@ defmodule Pleroma.Web.ActivityPub.ActivityPub do end end + defp check_remote_limit(%{"object" => %{"content" => content}}) do + limit = Pleroma.Config.get([:instance, :remote_limit]) + String.length(content) <= limit + end + + defp check_remote_limit(_), do: true + def insert(map, local \\ true) when is_map(map) do with nil <- Activity.normalize(map), map <- lazy_put_activity_defaults(map), :ok <- check_actor_is_active(map["actor"]), + {_, true} <- {:remote_limit_error, check_remote_limit(map)}, {:ok, map} <- MRF.filter(map), :ok <- insert_full_object(map) do {recipients, _, _} = get_recipients(map) |