Add ConcurrentLimiter to module_name?/1 and apply string_to_elixir_types/1 to search_...
authorMark Felder <feld@feld.me>
Tue, 13 Apr 2021 17:09:18 +0000 (12:09 -0500)
committerMark Felder <feld@feld.me>
Tue, 13 Apr 2021 19:39:31 +0000 (14:39 -0500)
lib/pleroma/config_db.ex

index b874e0e37a08419ea7b16042fbe866d277a64a77..03905c06b4d05a981a7ba38877a9574c800c9e7b 100644 (file)
@@ -141,7 +141,9 @@ defmodule Pleroma.ConfigDB do
   @spec update_or_create(map()) :: {:ok, ConfigDB.t()} | {:error, Changeset.t()}
   def update_or_create(params) do
     params = Map.put(params, :value, to_elixir_types(params[:value]))
-    search_opts = Map.take(params, [:group, :key])
+
+    search_opts =
+      Map.take(params, [:group, :key]) |> Map.update!(:key, &string_to_elixir_types(&1))
 
     with %ConfigDB{} = config <- ConfigDB.get_by_params(search_opts),
          {_, true, config} <- {:partial_update, can_be_partially_updated?(config), config},
@@ -387,6 +389,6 @@ defmodule Pleroma.ConfigDB do
   @spec module_name?(String.t()) :: boolean()
   def module_name?(string) do
     Regex.match?(~r/^(Pleroma|Phoenix|Tesla|Quack|Ueberauth|Swoosh)\./, string) or
-      string in ["Oban", "Ueberauth", "ExSyslogger"]
+      string in ["Oban", "Ueberauth", "ExSyslogger", "ConcurrentLimiter"]
   end
 end