aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/pleroma/user.ex8
-rw-r--r--lib/pleroma/web/nodeinfo/nodeinfo_controller.ex7
2 files changed, 15 insertions, 0 deletions
diff --git a/lib/pleroma/user.ex b/lib/pleroma/user.ex
index 64c69b209..1dad30e87 100644
--- a/lib/pleroma/user.ex
+++ b/lib/pleroma/user.ex
@@ -609,6 +609,14 @@ defmodule Pleroma.User do
)
end
+ def moderator_user_query() do
+ from(
+ u in User,
+ where: u.local == true,
+ where: fragment("?->'is_moderator' @> 'true'", u.info)
+ )
+ end
+
def deactivate(%User{} = user) do
new_info = Map.put(user.info, "deactivated", true)
cs = User.info_changeset(user, %{info: new_info})
diff --git a/lib/pleroma/web/nodeinfo/nodeinfo_controller.ex b/lib/pleroma/web/nodeinfo/nodeinfo_controller.ex
index 9155e42cd..67cef004a 100644
--- a/lib/pleroma/web/nodeinfo/nodeinfo_controller.ex
+++ b/lib/pleroma/web/nodeinfo/nodeinfo_controller.ex
@@ -3,6 +3,7 @@ defmodule Pleroma.Web.Nodeinfo.NodeinfoController do
alias Pleroma.Stats
alias Pleroma.Web
+ alias Pleroma.{User, Repo}
def schemas(conn, _params) do
response = %{
@@ -26,6 +27,11 @@ defmodule Pleroma.Web.Nodeinfo.NodeinfoController do
gopher = Application.get_env(:pleroma, :gopher)
stats = Stats.get_stats()
+ staff_accounts =
+ User.moderator_user_query()
+ |> Repo.all()
+ |> Enum.map(fn u -> u.ap_id end)
+
response = %{
version: "2.0",
software: %{
@@ -55,6 +61,7 @@ defmodule Pleroma.Web.Nodeinfo.NodeinfoController do
timeout: Keyword.get(suggestions, :timeout, 5000),
web: Keyword.get(suggestions, :web, "")
},
+ staffAccounts: staff_accounts,
chat: Keyword.get(chat, :enabled),
gopher: Keyword.get(gopher, :enabled)
}