diff options
| -rw-r--r-- | config/description.exs | 12 | ||||
| -rw-r--r-- | lib/pleroma/web/admin_api/config.ex | 5 | ||||
| -rw-r--r-- | test/docs/generator_test.exs | 12 | ||||
| -rw-r--r-- | test/web/admin_api/admin_api_controller_test.exs | 41 | ||||
| -rw-r--r-- | test/web/admin_api/config_test.exs | 6 | 
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)  | 
