commit: 683c4f08670d0e80c83e4f550571ea010f6d23af
parent cd535861e244c74aebe30b2f285e909429c3c079
Author: feld <feld@feld.me>
Date: Mon, 15 Jul 2024 19:21:53 +0000
Merge branch 'fix-mrfs' into 'develop'
Added a Mix task "pleroma.config fix_mrf_policies"
See merge request pleroma/pleroma!4177
Diffstat:
2 files changed, 30 insertions(+), 0 deletions(-)
diff --git a/changelog.d/fix-mrfs.add b/changelog.d/fix-mrfs.add
@@ -0,0 +1 @@
+Added a Mix task "pleroma.config fix_mrf_policies" which will remove erroneous MRF policies from ConfigDB
diff --git a/lib/mix/tasks/pleroma/config.ex b/lib/mix/tasks/pleroma/config.ex
@@ -205,6 +205,35 @@ defmodule Mix.Tasks.Pleroma.Config do
end
end
+ # Removes any policies that are not a real module
+ # as they will prevent the server from starting
+ def run(["fix_mrf_policies"]) do
+ check_configdb(fn ->
+ start_pleroma()
+
+ group = :pleroma
+ key = :mrf
+
+ %{value: value} =
+ group
+ |> ConfigDB.get_by_group_and_key(key)
+
+ policies =
+ Keyword.get(value, :policies, [])
+ |> Enum.filter(&is_atom(&1))
+ |> Enum.filter(fn mrf ->
+ case Code.ensure_compiled(mrf) do
+ {:module, _} -> true
+ {:error, _} -> false
+ end
+ end)
+
+ value = Keyword.put(value, :policies, policies)
+
+ ConfigDB.update_or_create(%{group: group, key: key, value: value})
+ end)
+ end
+
@spec migrate_to_db(Path.t() | nil) :: any()
def migrate_to_db(file_path \\ nil) do
with :ok <- Pleroma.Config.DeprecationWarnings.warn() do