@@ -25,6 +25,12 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). | |||
### Fixed | |||
- Logger configuration through AdminFE | |||
### Added | |||
<details> | |||
<summary>API Changes</summary> | |||
- Admin API: `GET /api/pleroma/admin/need_reboot`. | |||
</details> | |||
## [2.0.2] - 2020-04-08 | |||
### Added | |||
- Support for Funkwhale's `Audio` activity | |||
@@ -786,6 +786,8 @@ Note: Available `:permission_group` is currently moderator and admin. 404 is ret | |||
### Restarts pleroma application | |||
**Only works when configuration from database is enabled.** | |||
- Params: none | |||
- Response: | |||
- On failure: | |||
@@ -795,11 +797,24 @@ Note: Available `:permission_group` is currently moderator and admin. 404 is ret | |||
{} | |||
``` | |||
## `GET /api/pleroma/admin/need_reboot` | |||
### Returns the flag whether the pleroma should be restarted | |||
- Params: none | |||
- Response: | |||
- `need_reboot` - boolean | |||
```json | |||
{ | |||
"need_reboot": false | |||
} | |||
``` | |||
## `GET /api/pleroma/admin/config` | |||
### Get list of merged default settings with saved in database. | |||
*If `need_reboot` flag exists in response, instance must be restarted, so reboot time settings can take effect.* | |||
*If `need_reboot` is `true`, instance must be restarted, so reboot time settings can take effect.* | |||
**Only works when configuration from database is enabled.** | |||
@@ -821,13 +836,12 @@ Note: Available `:permission_group` is currently moderator and admin. 404 is ret | |||
"need_reboot": true | |||
} | |||
``` | |||
need_reboot - *optional*, if were changed reboot time settings. | |||
## `POST /api/pleroma/admin/config` | |||
### Update config settings | |||
*If `need_reboot` flag exists in response, instance must be restarted, so reboot time settings can take effect.* | |||
*If `need_reboot` is `true`, instance must be restarted, so reboot time settings can take effect.* | |||
**Only works when configuration from database is enabled.** | |||
@@ -971,7 +985,6 @@ config :quack, | |||
"need_reboot": true | |||
} | |||
``` | |||
need_reboot - *optional*, if were changed reboot time settings. | |||
## ` GET /api/pleroma/admin/config/descriptions` | |||
@@ -914,16 +914,7 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIController do | |||
end) | |||
|> List.flatten() | |||
response = %{configs: merged} | |||
response = | |||
if Restarter.Pleroma.need_reboot?() do | |||
Map.put(response, :need_reboot, true) | |||
else | |||
response | |||
end | |||
json(conn, response) | |||
json(conn, %{configs: merged, need_reboot: Restarter.Pleroma.need_reboot?()}) | |||
end | |||
end | |||
@@ -950,28 +941,22 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIController do | |||
Config.TransferTask.load_and_update_env(deleted, false) | |||
need_reboot? = | |||
Restarter.Pleroma.need_reboot?() || | |||
Enum.any?(updated, fn config -> | |||
if !Restarter.Pleroma.need_reboot?() do | |||
changed_reboot_settings? = | |||
(updated ++ deleted) | |||
|> Enum.any?(fn config -> | |||
group = ConfigDB.from_string(config.group) | |||
key = ConfigDB.from_string(config.key) | |||
value = ConfigDB.from_binary(config.value) | |||
Config.TransferTask.pleroma_need_restart?(group, key, value) | |||
end) | |||
response = %{configs: updated} | |||
response = | |||
if need_reboot? do | |||
Restarter.Pleroma.need_reboot() | |||
Map.put(response, :need_reboot, need_reboot?) | |||
else | |||
response | |||
end | |||
if changed_reboot_settings?, do: Restarter.Pleroma.need_reboot() | |||
end | |||
conn | |||
|> put_view(ConfigView) | |||
|> render("index.json", response) | |||
|> render("index.json", %{configs: updated, need_reboot: Restarter.Pleroma.need_reboot?()}) | |||
end | |||
end | |||
@@ -983,6 +968,10 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIController do | |||
end | |||
end | |||
def need_reboot(conn, _params) do | |||
json(conn, %{need_reboot: Restarter.Pleroma.need_reboot?()}) | |||
end | |||
defp configurable_from_database(conn) do | |||
if Config.get(:configurable_from_database) do | |||
:ok | |||
@@ -203,6 +203,7 @@ defmodule Pleroma.Web.Router do | |||
get("/config", AdminAPIController, :config_show) | |||
post("/config", AdminAPIController, :config_update) | |||
get("/config/descriptions", AdminAPIController, :config_descriptions) | |||
get("/need_reboot", AdminAPIController, :need_reboot) | |||
get("/restart", AdminAPIController, :restart) | |||
get("/moderation_log", AdminAPIController, :list_log) | |||
@@ -2110,7 +2110,7 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do | |||
|> get("/api/pleroma/admin/config") | |||
|> json_response(200) | |||
refute Map.has_key?(configs, "need_reboot") | |||
assert configs["need_reboot"] == false | |||
end | |||
test "update setting which need reboot, don't change reboot flag until reboot", %{conn: conn} do | |||
@@ -2166,7 +2166,7 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do | |||
|> get("/api/pleroma/admin/config") | |||
|> json_response(200) | |||
refute Map.has_key?(configs, "need_reboot") | |||
assert configs["need_reboot"] == false | |||
end | |||
test "saving config with nested merge", %{conn: conn} do | |||
@@ -2861,6 +2861,20 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do | |||
end | |||
end | |||
test "need_reboot flag", %{conn: conn} do | |||
assert conn | |||
|> get("/api/pleroma/admin/need_reboot") | |||
|> json_response(200) == %{"need_reboot" => false} | |||
Restarter.Pleroma.need_reboot() | |||
assert conn | |||
|> get("/api/pleroma/admin/need_reboot") | |||
|> json_response(200) == %{"need_reboot" => true} | |||
on_exit(fn -> Restarter.Pleroma.refresh() end) | |||
end | |||
describe "GET /api/pleroma/admin/statuses" do | |||
test "returns all public and unlisted statuses", %{conn: conn, admin: admin} do | |||
blocked = insert(:user) | |||