Add nodes and privileges to nodeinfo

I didn't add it to /api/v1/instance
I was wondering if I should, but since it e.g. also didn't show staff, it felt better not to
This commit is contained in:
Ilja 2022-06-21 12:03:35 +02:00
parent 211e561e2a
commit 4e4eb81749
2 changed files with 18 additions and 1 deletions

View File

@ -49,6 +49,10 @@ def get_nodeinfo("2.0") do
enabled: false enabled: false
}, },
staffAccounts: staff_accounts, staffAccounts: staff_accounts,
roles: %{
admin: Config.get([:instance, :admin_privileges]),
moderator: Config.get([:instance, :moderator_privileges])
},
federation: federation, federation: federation,
pollLimits: Config.get([:instance, :poll_limits]), pollLimits: Config.get([:instance, :poll_limits]),
postFormats: Config.get([:instance, :allowed_post_formats]), postFormats: Config.get([:instance, :allowed_post_formats]),

View File

@ -3,7 +3,7 @@
# SPDX-License-Identifier: AGPL-3.0-only # SPDX-License-Identifier: AGPL-3.0-only
defmodule Pleroma.Web.NodeInfoTest do defmodule Pleroma.Web.NodeInfoTest do
use Pleroma.Web.ConnCase use Pleroma.Web.ConnCase, async: false
import Pleroma.Factory import Pleroma.Factory
@ -40,6 +40,19 @@ test "nodeinfo shows staff accounts", %{conn: conn} do
assert admin.ap_id in result["metadata"]["staffAccounts"] assert admin.ap_id in result["metadata"]["staffAccounts"]
end end
test "nodeinfo shows roles and privileges", %{conn: conn} do
clear_config([:instance, :moderator_privileges], [:cofe])
clear_config([:instance, :admin_privileges], [:suya, :cofe])
conn =
conn
|> get("/nodeinfo/2.1.json")
assert result = json_response(conn, 200)
assert %{"admin" => ["suya", "cofe"], "moderator" => ["cofe"]} == result["metadata"]["roles"]
end
test "nodeinfo shows restricted nicknames", %{conn: conn} do test "nodeinfo shows restricted nicknames", %{conn: conn} do
conn = conn =
conn conn