diff options
author | Roman Chvanikov <chvanikoff@pm.me> | 2020-09-20 19:27:27 +0300 |
---|---|---|
committer | Roman Chvanikov <chvanikoff@pm.me> | 2020-09-20 19:27:27 +0300 |
commit | 4987ee6256c4227793240c74043845a661e3d37b (patch) | |
tree | 40abf0e0c85df9788b59f24ed4026ae00a89e5e5 /lib/pleroma/web/admin_api/controllers/admin_api_controller.ex | |
parent | 44e8b6037ae71881327451dcf7d9351f1ba82674 (diff) | |
parent | 882c1fc6bdff4e27955730a412d73ead0e67a741 (diff) | |
download | pleroma-4987ee6256c4227793240c74043845a661e3d37b.tar.gz |
Merge branch 'develop' into feature/expire-mutes
Diffstat (limited to 'lib/pleroma/web/admin_api/controllers/admin_api_controller.ex')
-rw-r--r-- | lib/pleroma/web/admin_api/controllers/admin_api_controller.ex | 22 |
1 files changed, 20 insertions, 2 deletions
diff --git a/lib/pleroma/web/admin_api/controllers/admin_api_controller.ex b/lib/pleroma/web/admin_api/controllers/admin_api_controller.ex index f5e4d49f9..d5713c3dd 100644 --- a/lib/pleroma/web/admin_api/controllers/admin_api_controller.ex +++ b/lib/pleroma/web/admin_api/controllers/admin_api_controller.ex @@ -23,8 +23,6 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIController do alias Pleroma.Web.Endpoint alias Pleroma.Web.Router - require Logger - @users_page_size 50 plug( @@ -70,6 +68,12 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIController do plug( OAuthScopesPlug, + %{scopes: ["read:chats"], admin: true} + when action in [:list_user_chats] + ) + + plug( + OAuthScopesPlug, %{scopes: ["read"], admin: true} when action in [ :list_log, @@ -256,6 +260,20 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIController do end end + def list_user_chats(%{assigns: %{user: admin}} = conn, %{"nickname" => nickname} = _params) do + with %User{id: user_id} <- User.get_cached_by_nickname_or_id(nickname, for: admin) do + chats = + Pleroma.Chat.for_user_query(user_id) + |> Pleroma.Repo.all() + + conn + |> put_view(AdminAPI.ChatView) + |> render("index.json", chats: chats) + else + _ -> {:error, :not_found} + end + end + def user_toggle_activation(%{assigns: %{user: admin}} = conn, %{"nickname" => nickname}) do user = User.get_cached_by_nickname(nickname) |