diff options
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/pleroma/user.ex | 8 | ||||
| -rw-r--r-- | lib/pleroma/web/nodeinfo/nodeinfo_controller.ex | 7 | 
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)        } | 
