diff options
author | Alex Gleason <alex@alexgleason.me> | 2020-10-08 15:08:47 -0500 |
---|---|---|
committer | Alex Gleason <alex@alexgleason.me> | 2020-10-08 15:08:47 -0500 |
commit | 1cdf30e61314aea969bcb78cc2c28f325764fb4f (patch) | |
tree | 7f574b600f8b51a23b0f169d75ccbb4529af9480 /lib/pleroma/web/admin_api/controllers/admin_api_controller.ex | |
parent | dc3f54a5df7cd72bf07dc613df08ca2719dce793 (diff) | |
parent | 74be4de3f6c2c34447029649526637411acfa9f3 (diff) | |
download | pleroma-1cdf30e61314aea969bcb78cc2c28f325764fb4f.tar.gz |
Merge remote-tracking branch 'upstream/develop' into oauth-form
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 | 25 |
1 files changed, 21 insertions, 4 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 aa2af1ab5..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) @@ -379,8 +397,7 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIController do filters |> String.split(",") |> Enum.filter(&Enum.member?(@filters, &1)) - |> Enum.map(&String.to_atom/1) - |> Map.new(&{&1, true}) + |> Map.new(&{String.to_existing_atom(&1), true}) end def right_add_multiple(%{assigns: %{user: admin}} = conn, %{ |