diff options
| -rw-r--r-- | CHANGELOG.md | 1 | ||||
| -rw-r--r-- | lib/pleroma/web/admin_api/controllers/admin_api_controller.ex | 10 | ||||
| -rw-r--r-- | test/web/admin_api/controllers/admin_api_controller_test.exs | 9 | 
3 files changed, 15 insertions, 5 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md index 2e914e776..78eb8e984 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -81,6 +81,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).  - `blob:` urls not being allowed by connect-src CSP  - Mastodon API: fix `GET /api/v1/notifications` not returning the full result set  - Rich Media Previews for Twitter links +- Admin API: fix `GET /api/pleroma/admin/users/:nickname/credentials` returning 404 when getting the credentials of a remote user while `:instance, :limit_to_local_content` is set to `:unauthenticated`  - Fix CSP policy generation to include remote Captcha services  ## [Unreleased (patch)] 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 f9545d895..e5f14269a 100644 --- a/lib/pleroma/web/admin_api/controllers/admin_api_controller.ex +++ b/lib/pleroma/web/admin_api/controllers/admin_api_controller.ex @@ -206,8 +206,8 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIController do      end    end -  def user_show(conn, %{"nickname" => nickname}) do -    with %User{} = user <- User.get_cached_by_nickname_or_id(nickname) do +  def user_show(%{assigns: %{user: admin}} = conn, %{"nickname" => nickname}) do +    with %User{} = user <- User.get_cached_by_nickname_or_id(nickname, for: admin) do        conn        |> put_view(AccountView)        |> render("show.json", %{user: user}) @@ -233,11 +233,11 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIController do      |> render("index.json", %{activities: activities, as: :activity})    end -  def list_user_statuses(conn, %{"nickname" => nickname} = params) do +  def list_user_statuses(%{assigns: %{user: admin}} = conn, %{"nickname" => nickname} = params) do      with_reblogs = params["with_reblogs"] == "true" || params["with_reblogs"] == true      godmode = params["godmode"] == "true" || params["godmode"] == true -    with %User{} = user <- User.get_cached_by_nickname_or_id(nickname) do +    with %User{} = user <- User.get_cached_by_nickname_or_id(nickname, for: admin) do        {_, page_size} = page_params(params)        activities = @@ -526,7 +526,7 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIController do    @doc "Show a given user's credentials"    def show_user_credentials(%{assigns: %{user: admin}} = conn, %{"nickname" => nickname}) do -    with %User{} = user <- User.get_cached_by_nickname_or_id(nickname) do +    with %User{} = user <- User.get_cached_by_nickname_or_id(nickname, for: admin) do        conn        |> put_view(AccountView)        |> render("credentials.json", %{user: user, for: admin}) diff --git a/test/web/admin_api/controllers/admin_api_controller_test.exs b/test/web/admin_api/controllers/admin_api_controller_test.exs index 48fb108ec..c2433f23c 100644 --- a/test/web/admin_api/controllers/admin_api_controller_test.exs +++ b/test/web/admin_api/controllers/admin_api_controller_test.exs @@ -1514,6 +1514,15 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do      end    end +  test "gets a remote users when [:instance, :limit_to_local_content] is set to :unauthenticated", +       %{conn: conn} do +    clear_config(Pleroma.Config.get([:instance, :limit_to_local_content]), :unauthenticated) +    user = insert(:user, %{local: false, nickname: "u@peer1.com"}) +    conn = get(conn, "/api/pleroma/admin/users/#{user.nickname}/credentials") + +    assert json_response(conn, 200) +  end +    describe "GET /users/:nickname/credentials" do      test "gets the user credentials", %{conn: conn} do        user = insert(:user)  | 
