added warning to use old keys
authorMaksim Pechnikov <parallel588@gmail.com>
Thu, 23 Jul 2020 03:51:19 +0000 (06:51 +0300)
committerMaksim Pechnikov <parallel588@gmail.com>
Thu, 23 Jul 2020 06:01:37 +0000 (09:01 +0300)
CHANGELOG.md
lib/pleroma/application_requirements.ex
lib/pleroma/config/deprecation_warnings.ex
lib/pleroma/user.ex
test/application_requirements_test.exs

index 0d8b3efeef65cd761841acd71862013ec0c12215..c0fd49341a3d4f84cc536c131025698200005700 100644 (file)
@@ -13,6 +13,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
 - OGP rich media parser merged with TwitterCard
 - Configuration: `:instance, rewrite_policy` moved to `:mrf, policies`, `:instance, :mrf_transparency` moved to `:mrf, :transparency`, `:instance, :mrf_transparency_exclusions` moved to `:mrf, :transparency_exclusions`. Old config namespace is deprecated.
 - Configuration: `:media_proxy, whitelist` format changed to host with scheme (e.g. `http://example.com` instead of `example.com`). Domain format is deprecated.
+- **Breaking:** Configuration: `:instance, welcome_user_nickname` moved to `:welcome, :direct_message, :sender_nickname`, `:instance, :welcome_message` moved to `:welcome, :direct_message, :message`. Old config namespace is deprecated.
 
 <details>
   <summary>API Changes</summary>
index 88575a498f6db653c5b40a631961089ad1ba7660..b4d8ff23bd09e7359e0ee9125e2a9173df943574 100644 (file)
@@ -17,6 +17,7 @@ defmodule Pleroma.ApplicationRequirements do
   def verify! do
     :ok
     |> check_migrations_applied!()
+    |> check_welcome_message_config!()
     |> check_rum!()
     |> handle_result()
   end
@@ -24,6 +25,22 @@ defmodule Pleroma.ApplicationRequirements do
   defp handle_result(:ok), do: :ok
   defp handle_result({:error, message}), do: raise(VerifyError, message: message)
 
+  defp check_welcome_message_config!(:ok) do
+    if Pleroma.Config.get([:welcome, :email, :enabled], false) and
+         not Pleroma.Emails.Mailer.enabled?() do
+      Logger.error("""
+      To send welcome email do you need to enable mail.
+      \nconfig :pleroma, Pleroma.Emails.Mailer, enabled: true
+      """)
+
+      {:error, "The mail disabled."}
+    else
+      :ok
+    end
+  end
+
+  defp check_welcome_message_config!(result), do: result
+
   # Checks for pending migrations.
   #
   def check_migrations_applied!(:ok) do
index 026871c4f11b943fdb6cf15e67153138f13be4b8..1401cbdf6b772339664ecc801cb3f1a8638cf88e 100644 (file)
@@ -55,6 +55,24 @@ defmodule Pleroma.Config.DeprecationWarnings do
     mrf_user_allowlist()
     check_old_mrf_config()
     check_media_proxy_whitelist_config()
+    check_welcome_message_config()
+  end
+
+  def check_welcome_message_config do
+    instance_config = Pleroma.Config.get([:instance])
+
+    use_old_config =
+      Keyword.has_key?(instance_config, :welcome_user_nickname) or
+        Keyword.has_key?(instance_config, :welcome_message)
+
+    if use_old_config do
+      Logger.error("""
+      !!!DEPRECATION WARNING!!!
+      Your config is using old namespaces for Welcome messages configuration. You are need to change to new namespaces:
+      \n* `config :pleroma, :instance, welcome_user_nickname` is now `config :pleroma, :welcome, :direct_message, :sender_nickname`
+      \n* `config :pleroma, :instance, welcome_message` is now `config :pleroma, :welcome, :direct_message, :message`
+      """)
+    end
   end
 
   def check_old_mrf_config do
index 5bc256b50c4c5d094aa828b97a2e9e3f246a9da6..95047b592002d292c9796a9cd5d10b441131ecde 100644 (file)
@@ -737,6 +737,7 @@ defmodule Pleroma.User do
       {:ok, :noop}
     end
   end
+
   def send_welcome_email(_), do: {:ok, :noop}
 
   def try_send_confirmation_email(%User{} = user) do
index 481cdfd73e6217e8b7900dfcd082fa0fa6951534..b59a9988e68facae024c666c6a751e4a12a9a0ac 100644 (file)
@@ -9,6 +9,20 @@ defmodule Pleroma.ApplicationRequirementsTest do
 
   alias Pleroma.Repo
 
+  describe "check_welcome_message_config!/1" do
+    setup do: clear_config([:welcome])
+    setup do: clear_config([Pleroma.Emails.Mailer])
+
+    test "raises if welcome email enabled but mail disabled" do
+      Pleroma.Config.put([:welcome, :email, :enabled], true)
+      Pleroma.Config.put([Pleroma.Emails.Mailer, :enabled], false)
+
+      assert_raise Pleroma.ApplicationRequirements.VerifyError, "The mail disabled.", fn ->
+        capture_log(&Pleroma.ApplicationRequirements.verify!/0)
+      end
+    end
+  end
+
   describe "check_rum!" do
     setup_with_mocks([
       {Pleroma.ApplicationRequirements, [:passthrough],