Deprecate and rewrite settings for quarentine settings
[akkoma] / lib / pleroma / config / deprecation_warnings.ex
index dd5c81094e29f218a81dcf504771ce28b7573c04..37f783fec160736dcbfbe0bb4a1a2b4babda15d0 100644 (file)
@@ -80,6 +80,44 @@ defmodule Pleroma.Config.DeprecationWarnings do
     end
   end
 
+  def check_quarantined_instances_tuples do
+    has_strings =
+      Config.get([:instance, :quarantined_instances]) |> Enum.any?(fn e -> is_binary(e) end)
+
+    if has_strings do
+      Logger.warn("""
+      !!!DEPRECATION WARNING!!!
+      Your config is using strings in the quarantined_instances configuration instead of tuples. They should work for now, but you are advised to change to the new configuration to prevent possible issues later:
+
+      ```
+      config :pleroma, :instance,
+        quarantined_instances: ["instance.tld"]
+      ```
+
+      Is now
+
+
+      ```
+      config :pleroma, :instance,
+        quarantined_instances: [{"instance.tld", "Reason for quarantine"}]
+      ```
+      """)
+
+      new_config =
+        Config.get([:instance, :quarantined_instances])
+        |> Enum.map(fn
+          {instance, reason} -> {instance, reason}
+          instance -> {instance, ""}
+        end)
+
+      Config.put([:instance, :quarantined_instances], new_config)
+
+      :error
+    else
+      :ok
+    end
+  end
+
   def check_hellthread_threshold do
     if Config.get([:mrf_hellthread, :threshold]) do
       Logger.warn("""
@@ -103,6 +141,7 @@ defmodule Pleroma.Config.DeprecationWarnings do
          :ok <- check_remote_ip_plug_name(),
          :ok <- check_uploders_s3_public_endpoint(),
          :ok <- check_old_chat_shoutbox(),
+         :ok <- check_quarantined_instances_tuples(),
          :ok <- check_simple_policy_tuples() do
       :ok
     else