diff options
author | kaniini <ariadne@dereferenced.org> | 2019-08-03 18:16:09 +0000 |
---|---|---|
committer | kaniini <ariadne@dereferenced.org> | 2019-08-03 18:16:09 +0000 |
commit | 4ae0a6652f2aaa04c8f96a7bfb4ffe35c8bfdeaf (patch) | |
tree | 53f9822563351ae9af3e021261ae97a2832a9671 /lib/pleroma/web/admin_api/config.ex | |
parent | 99ce6d6044606f8a91cb101c7f08a493a6644ee8 (diff) | |
parent | de0f3b73dd7c76b6b19b38804f98f6e7ccba7222 (diff) | |
download | pleroma-4ae0a6652f2aaa04c8f96a7bfb4ffe35c8bfdeaf.tar.gz |
Merge branch 'admin-fixes' into 'develop'
Admin fixes
See merge request pleroma/pleroma!1524
Diffstat (limited to 'lib/pleroma/web/admin_api/config.ex')
-rw-r--r-- | lib/pleroma/web/admin_api/config.ex | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/lib/pleroma/web/admin_api/config.ex b/lib/pleroma/web/admin_api/config.ex index dde05ea7b..a10cc779b 100644 --- a/lib/pleroma/web/admin_api/config.ex +++ b/lib/pleroma/web/admin_api/config.ex @@ -55,8 +55,19 @@ defmodule Pleroma.Web.AdminAPI.Config do @spec delete(map()) :: {:ok, Config.t()} | {:error, Changeset.t()} def delete(params) do - with %Config{} = config <- Config.get_by_params(params) do - Repo.delete(config) + with %Config{} = config <- Config.get_by_params(Map.delete(params, :subkeys)) do + if params[:subkeys] do + updated_value = + Keyword.drop( + :erlang.binary_to_term(config.value), + Enum.map(params[:subkeys], &do_transform_string(&1)) + ) + + Config.update(config, %{value: updated_value}) + else + Repo.delete(config) + {:ok, nil} + end else nil -> err = |