aboutsummaryrefslogtreecommitdiff
path: root/lib/pleroma/web/admin_api/config.ex
diff options
context:
space:
mode:
authorMaxim Filippov <colixer@gmail.com>2019-07-24 02:42:28 +0300
committerMaxim Filippov <colixer@gmail.com>2019-07-24 02:42:28 +0300
commitf46805bb40bf29cd67acb33b6b65ed1e4e28d3e1 (patch)
tree7542dbbe178183e4dd3c3451aa7744f18117fa37 /lib/pleroma/web/admin_api/config.ex
parent03471151d6089e318abaf5265d42ffedf7a5b902 (diff)
parent1a751529fb2cd3929e3373a908bec5db5cc32f1b (diff)
downloadpleroma-f46805bb40bf29cd67acb33b6b65ed1e4e28d3e1.tar.gz
Merge branch 'develop' into feature/admin-api-user-statuses
Diffstat (limited to 'lib/pleroma/web/admin_api/config.ex')
-rw-r--r--lib/pleroma/web/admin_api/config.ex14
1 files changed, 12 insertions, 2 deletions
diff --git a/lib/pleroma/web/admin_api/config.ex b/lib/pleroma/web/admin_api/config.ex
index b4eb8e002..dde05ea7b 100644
--- a/lib/pleroma/web/admin_api/config.ex
+++ b/lib/pleroma/web/admin_api/config.ex
@@ -84,6 +84,7 @@ defmodule Pleroma.Web.AdminAPI.Config do
end
defp do_convert({:dispatch, [entity]}), do: %{"tuple" => [":dispatch", [inspect(entity)]]}
+ defp do_convert({:partial_chain, entity}), do: %{"tuple" => [":partial_chain", inspect(entity)]}
defp do_convert(entity) when is_tuple(entity),
do: %{"tuple" => do_convert(Tuple.to_list(entity))}
@@ -113,11 +114,15 @@ defmodule Pleroma.Web.AdminAPI.Config do
defp do_transform(%Regex{} = entity) when is_map(entity), do: entity
defp do_transform(%{"tuple" => [":dispatch", [entity]]}) do
- cleaned_string = String.replace(entity, ~r/[^\w|^{:,[|^,|^[|^\]^}|^\/|^\.|^"]^\s/, "")
- {dispatch_settings, []} = Code.eval_string(cleaned_string, [], requires: [], macros: [])
+ {dispatch_settings, []} = do_eval(entity)
{:dispatch, [dispatch_settings]}
end
+ defp do_transform(%{"tuple" => [":partial_chain", entity]}) do
+ {partial_chain, []} = do_eval(entity)
+ {:partial_chain, partial_chain}
+ end
+
defp do_transform(%{"tuple" => entity}) do
Enum.reduce(entity, {}, fn val, acc -> Tuple.append(acc, do_transform(val)) end)
end
@@ -149,4 +154,9 @@ defmodule Pleroma.Web.AdminAPI.Config do
do: String.to_existing_atom("Elixir." <> value),
else: value
end
+
+ defp do_eval(entity) do
+ cleaned_string = String.replace(entity, ~r/[^\w|^{:,[|^,|^[|^\]^}|^\/|^\.|^"]^\s/, "")
+ Code.eval_string(cleaned_string, [], requires: [], macros: [])
+ end
end