Merge branch 'fix/deprecation-warning-welcome-message' into 'develop'

Fix deprecation warnings for old config settings

Closes #2153

See merge request pleroma/pleroma!3021
This commit is contained in:
feld 2020-09-25 18:40:00 +00:00
commit 35157f5dc8
2 changed files with 30 additions and 32 deletions

View File

@ -33,34 +33,8 @@ defmodule Pleroma.Config.DeprecationWarnings do
end end
end end
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!!!
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)}
""")
:error
else
:ok
end
end
def warn do def warn do
with :ok <- check_hellthread_threshold(), with :ok <- check_hellthread_threshold(),
:ok <- mrf_user_allowlist(),
:ok <- check_old_mrf_config(), :ok <- check_old_mrf_config(),
:ok <- check_media_proxy_whitelist_config(), :ok <- check_media_proxy_whitelist_config(),
:ok <- check_welcome_message_config(), :ok <- check_welcome_message_config(),
@ -83,9 +57,9 @@ defmodule Pleroma.Config.DeprecationWarnings do
if use_old_config do if use_old_config do
Logger.error(""" Logger.error("""
!!!DEPRECATION WARNING!!! !!!DEPRECATION WARNING!!!
Your config is using the old namespace for Welcome messages configuration. You need to change to the new namespace: Your config is using the old namespace for Welcome messages configuration. You need to convert to the new namespace. e.g.,
\n* `config :pleroma, :instance, welcome_user_nickname` is now `config :pleroma, :welcome, :direct_message, :sender_nickname` \n* `config :pleroma, :instance, welcome_user_nickname` and `config :pleroma, :instance, welcome_message` are now equal to:
\n* `config :pleroma, :instance, welcome_message` is now `config :pleroma, :welcome, :direct_message, :message` \n* `config :pleroma, :welcome, direct_message: [enabled: true, sender_nickname: "NICKNAME", message: "Your welcome message"]`"
""") """)
:error :error
@ -148,7 +122,7 @@ defmodule Pleroma.Config.DeprecationWarnings do
if timeout = pool_config[:await_up_timeout] do if timeout = pool_config[:await_up_timeout] do
Logger.warn(""" Logger.warn("""
!!!DEPRECATION WARNING!!! !!!DEPRECATION WARNING!!!
Your config is using old setting name `await_up_timeout` instead of `connect_timeout`. Setting should work for now, but you are advised to change format to scheme with port to prevent possible issues later. Your config is using old setting `config :pleroma, :connections_pool, await_up_timeout`. Please change to `config :pleroma, :connections_pool, connect_timeout` to ensure compatibility with future releases.
""") """)
Config.put(:connections_pool, Keyword.put_new(pool_config, :connect_timeout, timeout)) Config.put(:connections_pool, Keyword.put_new(pool_config, :connect_timeout, timeout))

View File

@ -1,5 +1,5 @@
defmodule Pleroma.Config.DeprecationWarningsTest do defmodule Pleroma.Config.DeprecationWarningsTest do
use ExUnit.Case, async: true use ExUnit.Case
use Pleroma.Tests.Helpers use Pleroma.Tests.Helpers
import ExUnit.CaptureLog import ExUnit.CaptureLog
@ -66,6 +66,30 @@ defmodule Pleroma.Config.DeprecationWarningsTest do
end) =~ "Your config is using old format (only domain) for MediaProxy whitelist option" end) =~ "Your config is using old format (only domain) for MediaProxy whitelist option"
end end
test "check_welcome_message_config/0" do
clear_config([:instance, :welcome_user_nickname], "LainChan")
assert capture_log(fn ->
DeprecationWarnings.check_welcome_message_config()
end) =~ "Your config is using the old namespace for Welcome messages configuration."
end
test "check_hellthread_threshold/0" do
clear_config([:mrf_hellthread, :threshold], 16)
assert capture_log(fn ->
DeprecationWarnings.check_hellthread_threshold()
end) =~ "You are using the old configuration mechanism for the hellthread filter."
end
test "check_activity_expiration_config/0" do
clear_config([Pleroma.ActivityExpiration, :enabled], true)
assert capture_log(fn ->
DeprecationWarnings.check_activity_expiration_config()
end) =~ "Your config is using old namespace for activity expiration configuration."
end
describe "check_gun_pool_options/0" do describe "check_gun_pool_options/0" do
test "await_up_timeout" do test "await_up_timeout" do
config = Config.get(:connections_pool) config = Config.get(:connections_pool)
@ -74,7 +98,7 @@ defmodule Pleroma.Config.DeprecationWarningsTest do
assert capture_log(fn -> assert capture_log(fn ->
DeprecationWarnings.check_gun_pool_options() DeprecationWarnings.check_gun_pool_options()
end) =~ end) =~
"Your config is using old setting name `await_up_timeout` instead of `connect_timeout`" "Your config is using old setting `config :pleroma, :connections_pool, await_up_timeout`."
end end
test "pool timeout" do test "pool timeout" do