Browse Source

Deprecate transparency_exclusions

* Give deprecation message
* Rewrite configs
merge-requests/3516/head
Ilja Haelwenn (lanodan) Monnier 3 years ago
parent
commit
3c5a497b19
No known key found for this signature in database GPG Key ID: D5B7A8E43C997DEE
2 changed files with 89 additions and 0 deletions
  1. +39
    -0
      lib/pleroma/config/deprecation_warnings.ex
  2. +50
    -0
      test/pleroma/config/deprecation_warnings_test.exs

+ 39
- 0
lib/pleroma/config/deprecation_warnings.ex View File

@@ -118,6 +118,44 @@ defmodule Pleroma.Config.DeprecationWarnings do
end
end

def check_transparency_exclusions_tuples do
has_strings =
Config.get([:mrf, :transparency_exclusions]) |> Enum.any?(fn e -> is_binary(e) end)

if has_strings do
Logger.warn("""
!!!DEPRECATION WARNING!!!
Your config is using strings in the transparency_exclusions 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, :mrf,
transparency_exclusions: ["instance.tld"]
```

Is now


```
config :pleroma, :mrf,
transparency_exclusions: [{"instance.tld", "Reason to exlude transparency"}]
```
""")

new_config =
Config.get([:mrf, :transparency_exclusions])
|> Enum.map(fn
{instance, reason} -> {instance, reason}
instance -> {instance, ""}
end)

Config.put([:mrf, :transparency_exclusions], new_config)

:error
else
:ok
end
end

def check_hellthread_threshold do
if Config.get([:mrf_hellthread, :threshold]) do
Logger.warn("""
@@ -142,6 +180,7 @@ defmodule Pleroma.Config.DeprecationWarnings do
:ok <- check_uploders_s3_public_endpoint(),
:ok <- check_old_chat_shoutbox(),
:ok <- check_quarantined_instances_tuples(),
:ok <- check_transparency_exclusions_tuples(),
:ok <- check_simple_policy_tuples() do
:ok
else


+ 50
- 0
test/pleroma/config/deprecation_warnings_test.exs View File

@@ -137,6 +137,56 @@ defmodule Pleroma.Config.DeprecationWarningsTest do
end
end

describe "transparency_exclusions tuples" do
test "gives warning when there are still strings" do
clear_config([:mrf, :transparency_exclusions], [
{"domain.com", "some reason"},
"somedomain.tld"
])

assert capture_log(fn -> DeprecationWarnings.check_transparency_exclusions_tuples() end) =~
"""
!!!DEPRECATION WARNING!!!
Your config is using strings in the transparency_exclusions 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, :mrf,
transparency_exclusions: ["instance.tld"]
```

Is now


```
config :pleroma, :mrf,
transparency_exclusions: [{"instance.tld", "Reason to exlude transparency"}]
```
"""
end

test "transforms config to tuples" do
clear_config([:mrf, :transparency_exclusions], [
{"domain.com", "some reason"},
"some.tld"
])

expected_config = [{"domain.com", "some reason"}, {"some.tld", ""}]

capture_log(fn -> DeprecationWarnings.check_transparency_exclusions_tuples() end)

assert Config.get([:mrf, :transparency_exclusions]) == expected_config
end

test "doesn't give a warning with correct config" do
clear_config([:mrf, :transparency_exclusions], [
{"domain.com", "some reason"},
{"some.tld", ""}
])

assert capture_log(fn -> DeprecationWarnings.check_transparency_exclusions_tuples() end) == ""
end
end

test "check_old_mrf_config/0" do
clear_config([:instance, :rewrite_policy], [])
clear_config([:instance, :mrf_transparency], true)


Loading…
Cancel
Save