Commit 750de7d8 authored by rinpatch's avatar rinpatch
Browse files

Merge branch 'features/mrf-keyword-nil-summary' into 'develop'

mrf/keyword_policy.ex: Fix when summary == nil, do not whitelist content == nil

See merge request !968
parents a32bcab0 eab9425c
Pipeline #9335 passed with stages
in 4 minutes and 23 seconds
...@@ -4,6 +4,10 @@ ...@@ -4,6 +4,10 @@
defmodule Pleroma.Web.ActivityPub.MRF.KeywordPolicy do defmodule Pleroma.Web.ActivityPub.MRF.KeywordPolicy do
@behaviour Pleroma.Web.ActivityPub.MRF @behaviour Pleroma.Web.ActivityPub.MRF
defp string_matches?(string, _) when not is_binary(string) do
false
end
defp string_matches?(string, pattern) when is_binary(pattern) do defp string_matches?(string, pattern) when is_binary(pattern) do
String.contains?(string, pattern) String.contains?(string, pattern)
end end
...@@ -44,6 +48,20 @@ defp check_ftl_removal( ...@@ -44,6 +48,20 @@ defp check_ftl_removal(
end end
defp check_replace(%{"object" => %{"content" => content, "summary" => summary}} = message) do defp check_replace(%{"object" => %{"content" => content, "summary" => summary}} = message) do
content =
if is_binary(content) do
content
else
""
end
summary =
if is_binary(summary) do
summary
else
""
end
{content, summary} = {content, summary} =
Enum.reduce( Enum.reduce(
Pleroma.Config.get([:mrf_keyword, :replace]), Pleroma.Config.get([:mrf_keyword, :replace]),
...@@ -60,11 +78,6 @@ defp check_replace(%{"object" => %{"content" => content, "summary" => summary}} ...@@ -60,11 +78,6 @@ defp check_replace(%{"object" => %{"content" => content, "summary" => summary}}
|> put_in(["object", "summary"], summary)} |> put_in(["object", "summary"], summary)}
end end
@impl true
def filter(%{"object" => %{"content" => nil}} = message) do
{:ok, message}
end
@impl true @impl true
def filter(%{"type" => "Create", "object" => %{"content" => _content}} = message) do def filter(%{"type" => "Create", "object" => %{"content" => _content}} = message) do
with {:ok, message} <- check_reject(message), with {:ok, message} <- check_reject(message),
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment