summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMaksim Pechnikov <parallel588@gmail.com>2020-07-23 06:51:19 +0300
committerMaksim Pechnikov <parallel588@gmail.com>2020-07-23 09:01:37 +0300
commit7991ddad582537f34b4964125195961e596b8687 (patch)
tree30e3a7c2c74ad1652727ed710b88c7a019972186
parentdb0224d1745e753b73bd0e993bc0e75eec295651 (diff)
added warning to use old keys
-rw-r--r--CHANGELOG.md1
-rw-r--r--lib/pleroma/application_requirements.ex17
-rw-r--r--lib/pleroma/config/deprecation_warnings.ex18
-rw-r--r--lib/pleroma/user.ex1
-rw-r--r--test/application_requirements_test.exs14
5 files changed, 51 insertions, 0 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 0d8b3efee..c0fd49341 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -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>
diff --git a/lib/pleroma/application_requirements.ex b/lib/pleroma/application_requirements.ex
index 88575a498..b4d8ff23b 100644
--- a/lib/pleroma/application_requirements.ex
+++ b/lib/pleroma/application_requirements.ex
@@ -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
diff --git a/lib/pleroma/config/deprecation_warnings.ex b/lib/pleroma/config/deprecation_warnings.ex
index 026871c4f..1401cbdf6 100644
--- a/lib/pleroma/config/deprecation_warnings.ex
+++ b/lib/pleroma/config/deprecation_warnings.ex
@@ -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
diff --git a/lib/pleroma/user.ex b/lib/pleroma/user.ex
index 5bc256b50..95047b592 100644
--- a/lib/pleroma/user.ex
+++ b/lib/pleroma/user.ex
@@ -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
diff --git a/test/application_requirements_test.exs b/test/application_requirements_test.exs
index 481cdfd73..b59a9988e 100644
--- a/test/application_requirements_test.exs
+++ b/test/application_requirements_test.exs
@@ -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],