aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorkaniini <nenolod@gmail.com>2018-09-03 15:00:56 +0000
committerkaniini <nenolod@gmail.com>2018-09-03 15:00:56 +0000
commit8143251f06b1a781ee20924c89be484e514f0bec (patch)
tree5df0e23a10b29ee0dd31887919b8858253800296 /lib
parent1c9e539b47ff594d75c9548a04e64cb0c61cff8c (diff)
parent76c67a41c12a80138e984fa782d7396da53b8d32 (diff)
downloadpleroma-8143251f06b1a781ee20924c89be484e514f0bec.tar.gz
Merge branch 'feature/staff-discovery-api' into 'develop'
staff discovery api See merge request pleroma/pleroma!326
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)
}