forked from AkkomaGang/akkoma
Merge branch 'config-changes' into 'develop'
Config changes Closes #1547 See merge request pleroma/pleroma!2174
This commit is contained in:
commit
5499f172b2
4 changed files with 35 additions and 57 deletions
config
docs/API
lib/pleroma/web/admin_api
test/web/admin_api
|
@ -871,7 +871,7 @@
|
|||
},
|
||||
%{
|
||||
key: :limit_to_local_content,
|
||||
type: [:atom, false],
|
||||
type: {:dropdown, :atom},
|
||||
description:
|
||||
"Limit unauthenticated users to search for local statutes and users only. Default: `:unauthenticated`.",
|
||||
suggestions: [
|
||||
|
@ -942,7 +942,7 @@
|
|||
children: [
|
||||
%{
|
||||
key: :level,
|
||||
type: :atom,
|
||||
type: {:dropdown, :atom},
|
||||
description: "Log level",
|
||||
suggestions: [:debug, :info, :warn, :error]
|
||||
},
|
||||
|
@ -974,7 +974,7 @@
|
|||
children: [
|
||||
%{
|
||||
key: :level,
|
||||
type: :atom,
|
||||
type: {:dropdown, :atom},
|
||||
description: "Log level",
|
||||
suggestions: [:debug, :info, :warn, :error]
|
||||
},
|
||||
|
@ -998,7 +998,7 @@
|
|||
children: [
|
||||
%{
|
||||
key: :level,
|
||||
type: :atom,
|
||||
type: {:dropdown, :atom},
|
||||
description: "Log level",
|
||||
suggestions: [:debug, :info, :warn, :error]
|
||||
},
|
||||
|
@ -1969,7 +1969,7 @@
|
|||
},
|
||||
%{
|
||||
key: :verbose,
|
||||
type: [:atom, false],
|
||||
type: {:dropdown, :atom},
|
||||
description: "Logs verbose mode",
|
||||
suggestions: [false, :error, :warn, :info, :debug]
|
||||
},
|
||||
|
@ -2178,7 +2178,7 @@
|
|||
%{
|
||||
key: :new_window,
|
||||
type: :boolean,
|
||||
description: "Set to `false` to remove target='_blank' attribute"
|
||||
description: "Link urls will open in new window/tab"
|
||||
},
|
||||
%{
|
||||
key: :truncate,
|
||||
|
|
|
@ -689,7 +689,6 @@ Note: Available `:permission_group` is currently moderator and admin. 404 is ret
|
|||
- Response:
|
||||
- On failure:
|
||||
- 400 Bad Request `"To use this endpoint you need to enable configuration from database."`
|
||||
- 400 Bad Request `"To use configuration from database migrate your settings to database."`
|
||||
|
||||
```json
|
||||
{
|
||||
|
|
|
@ -797,16 +797,9 @@ def config_show(conn, %{"only_db" => true}) do
|
|||
with :ok <- configurable_from_database(conn) do
|
||||
configs = Pleroma.Repo.all(ConfigDB)
|
||||
|
||||
if configs == [] do
|
||||
errors(
|
||||
conn,
|
||||
{:error, "To use configuration from database migrate your settings to database."}
|
||||
)
|
||||
else
|
||||
conn
|
||||
|> put_view(ConfigView)
|
||||
|> render("index.json", %{configs: configs})
|
||||
end
|
||||
conn
|
||||
|> put_view(ConfigView)
|
||||
|> render("index.json", %{configs: configs})
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -814,45 +807,38 @@ def config_show(conn, _params) do
|
|||
with :ok <- configurable_from_database(conn) do
|
||||
configs = ConfigDB.get_all_as_keyword()
|
||||
|
||||
if configs == [] do
|
||||
errors(
|
||||
conn,
|
||||
{:error, "To use configuration from database migrate your settings to database."}
|
||||
)
|
||||
else
|
||||
merged =
|
||||
Pleroma.Config.Holder.config()
|
||||
|> ConfigDB.merge(configs)
|
||||
|> Enum.map(fn {group, values} ->
|
||||
Enum.map(values, fn {key, value} ->
|
||||
db =
|
||||
if configs[group][key] do
|
||||
ConfigDB.get_db_keys(configs[group][key], key)
|
||||
end
|
||||
merged =
|
||||
Pleroma.Config.Holder.config()
|
||||
|> ConfigDB.merge(configs)
|
||||
|> Enum.map(fn {group, values} ->
|
||||
Enum.map(values, fn {key, value} ->
|
||||
db =
|
||||
if configs[group][key] do
|
||||
ConfigDB.get_db_keys(configs[group][key], key)
|
||||
end
|
||||
|
||||
db_value = configs[group][key]
|
||||
db_value = configs[group][key]
|
||||
|
||||
merged_value =
|
||||
if !is_nil(db_value) and Keyword.keyword?(db_value) and
|
||||
ConfigDB.sub_key_full_update?(group, key, Keyword.keys(db_value)) do
|
||||
ConfigDB.merge_group(group, key, value, db_value)
|
||||
else
|
||||
value
|
||||
end
|
||||
merged_value =
|
||||
if !is_nil(db_value) and Keyword.keyword?(db_value) and
|
||||
ConfigDB.sub_key_full_update?(group, key, Keyword.keys(db_value)) do
|
||||
ConfigDB.merge_group(group, key, value, db_value)
|
||||
else
|
||||
value
|
||||
end
|
||||
|
||||
setting = %{
|
||||
group: ConfigDB.convert(group),
|
||||
key: ConfigDB.convert(key),
|
||||
value: ConfigDB.convert(merged_value)
|
||||
}
|
||||
setting = %{
|
||||
group: ConfigDB.convert(group),
|
||||
key: ConfigDB.convert(key),
|
||||
value: ConfigDB.convert(merged_value)
|
||||
}
|
||||
|
||||
if db, do: Map.put(setting, :db, db), else: setting
|
||||
end)
|
||||
if db, do: Map.put(setting, :db, db), else: setting
|
||||
end)
|
||||
|> List.flatten()
|
||||
end)
|
||||
|> List.flatten()
|
||||
|
||||
json(conn, %{configs: merged})
|
||||
end
|
||||
json(conn, %{configs: merged})
|
||||
end
|
||||
end
|
||||
|
||||
|
|
|
@ -1899,13 +1899,6 @@ test "when configuration from database is off", %{conn: conn} do
|
|||
"To use this endpoint you need to enable configuration from database."
|
||||
end
|
||||
|
||||
test "without any settings in db", %{conn: conn} do
|
||||
conn = get(conn, "/api/pleroma/admin/config")
|
||||
|
||||
assert json_response(conn, 400) ==
|
||||
"To use configuration from database migrate your settings to database."
|
||||
end
|
||||
|
||||
test "with settings only in db", %{conn: conn} do
|
||||
config1 = insert(:config)
|
||||
config2 = insert(:config)
|
||||
|
|
Loading…
Reference in a new issue