diff options
author | lain <lain@soykaf.club> | 2020-09-22 17:13:46 +0200 |
---|---|---|
committer | lain <lain@soykaf.club> | 2020-09-22 17:13:46 +0200 |
commit | c95859e45b18dec1d00f721ef3c5b4bb1406ea37 (patch) | |
tree | c22f7a200c0e0e551796bf5e9f1b09afccd64dd4 /lib/pleroma/web/admin_api/controllers/admin_api_controller.ex | |
parent | 9853c90abba213bdc87dccf5620cb0d9eb19c049 (diff) | |
parent | 02f12ec6253093d8bedaf84d78d0f7e533745e1b (diff) | |
download | pleroma-c95859e45b18dec1d00f721ef3c5b4bb1406ea37.tar.gz |
Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into issue/2115
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) |