aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--config/description.exs12
-rw-r--r--lib/pleroma/web/admin_api/config.ex5
-rw-r--r--test/docs/generator_test.exs12
-rw-r--r--test/web/admin_api/admin_api_controller_test.exs41
-rw-r--r--test/web/admin_api/config_test.exs6
5 files changed, 70 insertions, 6 deletions
diff --git a/config/description.exs b/config/description.exs
index 52f7d2017..a9b2efec5 100644
--- a/config/description.exs
+++ b/config/description.exs
@@ -101,8 +101,8 @@ config :pleroma, :config_description, [
%{
key: :versions,
type: {:list, :atom},
- descriptions: "List of TLS version to use",
- suggestions: [:tlsv1, :"tlsv1.1", :"tlsv1.2"]
+ description: "List of TLS version to use",
+ suggestions: [:tlsv1, ":tlsv1.1", ":tlsv1.2"]
}
]
}
@@ -1509,8 +1509,8 @@ config :pleroma, :config_description, [
%{
key: :versions,
type: {:list, :atom},
- descriptions: "List of TLS version to use",
- suggestions: [:tlsv1, :"tlsv1.1", :"tlsv1.2"]
+ description: "List of TLS version to use",
+ suggestions: [:tlsv1, ":tlsv1.1", ":tlsv1.2"]
}
]
}
@@ -2820,8 +2820,8 @@ config :pleroma, :config_description, [
%{
key: :versions,
type: {:list, :atom},
- descriptions: "List of TLS version to use",
- suggestions: [:tlsv1, :"tlsv1.1", :"tlsv1.2"]
+ description: "List of TLS version to use",
+ suggestions: [:tlsv1, ":tlsv1.1", ":tlsv1.2"]
}
]
}
diff --git a/lib/pleroma/web/admin_api/config.ex b/lib/pleroma/web/admin_api/config.ex
index ef658e079..b55851602 100644
--- a/lib/pleroma/web/admin_api/config.ex
+++ b/lib/pleroma/web/admin_api/config.ex
@@ -183,6 +183,11 @@ defmodule Pleroma.Web.AdminAPI.Config do
defp do_convert(entity) when is_boolean(entity) or is_number(entity) or is_nil(entity),
do: entity
+ defp do_convert(entity)
+ when is_atom(entity) and entity in [:"tlsv1.1", :"tlsv1.2", :"tlsv1.3"] do
+ ":#{to_string(entity)}"
+ end
+
defp do_convert(entity) when is_atom(entity), do: inspect(entity)
defp do_convert(entity) when is_binary(entity), do: entity
diff --git a/test/docs/generator_test.exs b/test/docs/generator_test.exs
index 0106809c2..9c9f4357b 100644
--- a/test/docs/generator_test.exs
+++ b/test/docs/generator_test.exs
@@ -85,6 +85,12 @@ defmodule Pleroma.Docs.GeneratorTest do
key: "application/xml",
type: {:list, :string},
suggestions: ["xml"]
+ },
+ %{
+ key: :versions,
+ type: {:list, :atom},
+ description: "List of TLS version to use",
+ suggestions: [:tlsv1, ":tlsv1.1", ":tlsv1.2"]
}
]
},
@@ -208,6 +214,12 @@ defmodule Pleroma.Docs.GeneratorTest do
assert child[:key] == "application/xml"
end
+ test "suggestion for tls versions" do
+ [%{children: children} | _] = Generator.convert_to_strings(@descriptions)
+ child = Enum.at(children, 8)
+ assert child[:suggestions] == [":tlsv1", ":tlsv1.1", ":tlsv1.2"]
+ end
+
test "subgroup with module name" do
[%{children: children} | _] = Generator.convert_to_strings(@descriptions)
diff --git a/test/web/admin_api/admin_api_controller_test.exs b/test/web/admin_api/admin_api_controller_test.exs
index ea3c43158..d83a95aae 100644
--- a/test/web/admin_api/admin_api_controller_test.exs
+++ b/test/web/admin_api/admin_api_controller_test.exs
@@ -2204,6 +2204,47 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do
}
end
+ test "saving special atoms", %{conn: conn} do
+ conn =
+ post(conn, "/api/pleroma/admin/config", %{
+ "configs" => [
+ %{
+ "group" => ":pleroma",
+ "key" => ":key1",
+ "value" => [
+ %{
+ "tuple" => [
+ ":ssl_options",
+ [%{"tuple" => [":versions", [":tlsv1", ":tlsv1.1", ":tlsv1.2"]]}]
+ ]
+ }
+ ]
+ }
+ ]
+ })
+
+ assert json_response(conn, 200) == %{
+ "configs" => [
+ %{
+ "group" => ":pleroma",
+ "key" => ":key1",
+ "value" => [
+ %{
+ "tuple" => [
+ ":ssl_options",
+ [%{"tuple" => [":versions", [":tlsv1", ":tlsv1.1", ":tlsv1.2"]]}]
+ ]
+ }
+ ]
+ }
+ ]
+ }
+
+ assert Application.get_env(:pleroma, :key1) == [
+ ssl_options: [versions: [:tlsv1, :"tlsv1.1", :"tlsv1.2"]]
+ ]
+ end
+
test "saving full setting if value is in full_key_update list", %{conn: conn} do
backends = Application.get_env(:logger, :backends)
on_exit(fn -> Application.put_env(:logger, :backends, backends) end)
diff --git a/test/web/admin_api/config_test.exs b/test/web/admin_api/config_test.exs
index 4f96322af..cc4c903bf 100644
--- a/test/web/admin_api/config_test.exs
+++ b/test/web/admin_api/config_test.exs
@@ -151,6 +151,12 @@ defmodule Pleroma.Web.AdminAPI.ConfigTest do
assert Config.from_binary(binary) == :atom
end
+ test "ssl options" do
+ binary = Config.transform([":tlsv1", ":tlsv1.1", ":tlsv1.2"])
+ assert binary == :erlang.term_to_binary([:tlsv1, :"tlsv1.1", :"tlsv1.2"])
+ assert Config.from_binary(binary) == [:tlsv1, :"tlsv1.1", :"tlsv1.2"]
+ end
+
test "pleroma module" do
binary = Config.transform("Pleroma.Bookmark")
assert binary == :erlang.term_to_binary(Pleroma.Bookmark)