diff --git a/lib/pleroma/web/activity_pub/activity_pub.ex b/lib/pleroma/web/activity_pub/activity_pub.ex index 881377844..c8be6d3df 100644 --- a/lib/pleroma/web/activity_pub/activity_pub.ex +++ b/lib/pleroma/web/activity_pub/activity_pub.ex @@ -172,7 +172,7 @@ defmodule Pleroma.Web.ActivityPub.ActivityPub do {:ok, activity} {:reject, nil} -> - {:reject, "Unspecified MRF error"} + {:reject, "Unspecified MRF rejection"} {:reject, message} -> {:reject, message} diff --git a/lib/pleroma/web/activity_pub/mrf/hellthread_policy.ex b/lib/pleroma/web/activity_pub/mrf/hellthread_policy.ex index a699f6a7e..9aa6d1cbe 100644 --- a/lib/pleroma/web/activity_pub/mrf/hellthread_policy.ex +++ b/lib/pleroma/web/activity_pub/mrf/hellthread_policy.ex @@ -38,7 +38,7 @@ defmodule Pleroma.Web.ActivityPub.MRF.HellthreadPolicy do defp reject_message(message, threshold) when threshold > 0 do with {_, recipients} <- get_recipient_count(message) do if recipients > threshold do - {:reject, nil} + {:reject, "Message recipient count above MRF policy threshold"} else {:ok, message} end diff --git a/lib/pleroma/web/activity_pub/mrf/keyword_policy.ex b/lib/pleroma/web/activity_pub/mrf/keyword_policy.ex index d5c341433..df4cedea6 100644 --- a/lib/pleroma/web/activity_pub/mrf/keyword_policy.ex +++ b/lib/pleroma/web/activity_pub/mrf/keyword_policy.ex @@ -22,7 +22,7 @@ defmodule Pleroma.Web.ActivityPub.MRF.KeywordPolicy do if Enum.any?(Pleroma.Config.get([:mrf_keyword, :reject]), fn pattern -> string_matches?(content, pattern) or string_matches?(summary, pattern) end) do - {:reject, nil} + {:reject, "Message contains a rejected keyword"} else {:ok, message} end @@ -87,8 +87,8 @@ defmodule Pleroma.Web.ActivityPub.MRF.KeywordPolicy do {:ok, message} <- check_replace(message) do {:ok, message} else - _e -> - {:reject, nil} + {:reject, error_message} -> + {:reject, error_message} end end diff --git a/lib/pleroma/web/activity_pub/mrf/reject_non_public.ex b/lib/pleroma/web/activity_pub/mrf/reject_non_public.ex index ea3df1b4d..dde29cce3 100644 --- a/lib/pleroma/web/activity_pub/mrf/reject_non_public.ex +++ b/lib/pleroma/web/activity_pub/mrf/reject_non_public.ex @@ -34,14 +34,14 @@ defmodule Pleroma.Web.ActivityPub.MRF.RejectNonPublic do with true <- Keyword.get(policy, :allow_followersonly) do {:ok, object} else - _e -> {:reject, nil} + _e -> {:reject, "Follower only messages not allowed by server"} end "direct" -> with true <- Keyword.get(policy, :allow_direct) do {:ok, object} else - _e -> {:reject, nil} + _e -> {:reject, "Direct messages not allowed by server"} end end end diff --git a/lib/pleroma/web/mastodon_api/mastodon_api_controller.ex b/lib/pleroma/web/mastodon_api/mastodon_api_controller.ex index 20f9273a0..95e74a34b 100644 --- a/lib/pleroma/web/mastodon_api/mastodon_api_controller.ex +++ b/lib/pleroma/web/mastodon_api/mastodon_api_controller.ex @@ -572,11 +572,6 @@ defmodule Pleroma.Web.MastodonAPI.MastodonAPIController do |> put_status(422) |> json(%{error: message}) - {:reject, message} -> - conn - |> put_status(500) - |> json(%{error: message}) - {_, activity} -> conn |> put_view(StatusView) @@ -596,6 +591,7 @@ defmodule Pleroma.Web.MastodonAPI.MastodonAPIController do case CommonAPI.post(user, params) do {:ok, activity} -> activity {:error, message} -> {:ignore, message} + {:reject, message} -> {:ignore, message} end end) end