Remove use of atoms in MRF.UserAllowListPolicy
[akkoma] / lib / pleroma / config / deprecation_warnings.ex
index 0eb1833aab27052bc17cfaeeab8dde3d06ffbb80..b68ded01f6bd486f575485515cd588c2e0b312e5 100644 (file)
@@ -1,27 +1,43 @@
 # Pleroma: A lightweight social networking server
-# Copyright © 2017-2019 Pleroma Authors <https://pleroma.social/>
+# Copyright © 2017-2020 Pleroma Authors <https://pleroma.social/>
 # SPDX-License-Identifier: AGPL-3.0-only
 
 defmodule Pleroma.Config.DeprecationWarnings do
   require Logger
+  alias Pleroma.Config
 
-  def check_frontend_config_mechanism() do
-    if Pleroma.Config.get(:fe) do
+  def check_hellthread_threshold do
+    if Config.get([:mrf_hellthread, :threshold]) do
       Logger.warn("""
       !!!DEPRECATION WARNING!!!
-      You are using the old configuration mechanism for the frontend. Please check config.md.
+      You are using the old configuration mechanism for the hellthread filter. Please check config.md.
       """)
     end
+  end
 
-    if Pleroma.Config.get(:mrf_hellthread, :threshold) do
-      Logger.warn("""
+  def mrf_user_allowlist do
+    config = Config.get(:mrf_user_allowlist)
+
+    if config && Enum.any?(config, fn {k, _} -> is_atom(k) end) do
+      rewritten =
+        Enum.reduce(Config.get(:mrf_user_allowlist), Map.new(), fn {k, v}, acc ->
+          Map.put(acc, to_string(k), v)
+        end)
+
+      Config.put(:mrf_user_allowlist, rewritten)
+
+      Logger.error("""
       !!!DEPRECATION WARNING!!!
-      You are using the old configuration mechanism for the hellthread filter. Please check config.md.
+      As of Pleroma 2.0.7, the `mrf_user_allowlist` setting changed of format.
+      Pleroma 2.1 will remove support for the old format. Please change your configuration to match this:
+
+      config :pleroma, :mrf_user_allowlist, #{inspect(rewritten, pretty: true)}
       """)
     end
   end
 
   def warn do
-    check_frontend_config_mechanism()
+    check_hellthread_threshold()
+    mrf_user_allowlist()
   end
 end