diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/pleroma/config/config_db.ex | 7 | ||||
-rw-r--r-- | lib/pleroma/web/admin_api/admin_api_controller.ex | 2 |
2 files changed, 7 insertions, 2 deletions
diff --git a/lib/pleroma/config/config_db.ex b/lib/pleroma/config/config_db.ex index 0091f7a1b..1afe294f4 100644 --- a/lib/pleroma/config/config_db.ex +++ b/lib/pleroma/config/config_db.ex @@ -205,9 +205,14 @@ defmodule Pleroma.ConfigDB do {config, sub_keys} when is_list(sub_keys) <- {config, params[:subkeys]}, old_value <- from_binary(config.value), keys <- Enum.map(sub_keys, &do_transform_string(&1)), - new_value <- Keyword.drop(old_value, keys) do + {:partial_remove, config, new_value} when new_value != [] <- + {:partial_remove, config, Keyword.drop(old_value, keys)} do ConfigDB.update(config, %{value: new_value}) else + {:partial_remove, config, []} -> + Repo.delete(config) + {:ok, nil} + {config, nil} -> Repo.delete(config) {:ok, nil} diff --git a/lib/pleroma/web/admin_api/admin_api_controller.ex b/lib/pleroma/web/admin_api/admin_api_controller.ex index 30343a9f1..d45b1f7a7 100644 --- a/lib/pleroma/web/admin_api/admin_api_controller.ex +++ b/lib/pleroma/web/admin_api/admin_api_controller.ex @@ -831,7 +831,7 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIController do Enum.map(values, fn {key, value} -> db = if configs[group][key] do - ConfigDB.get_db_keys(value, key) + ConfigDB.get_db_keys(configs[group][key], key) end db_value = configs[group][key] |