logo

pleroma

My custom branche(s) on git.pleroma.social/pleroma/pleroma
commit: de5c7e20a36ecb0f08e8c1d8248cdb288003cacf
parent: 79f9ddd8b725519f719219b70b8dd8558d5212cf
Author: lain <lain@soykaf.club>
Date:   Wed, 29 Jul 2020 12:16:20 +0000

Merge branch 'bugfix/remote-user-atom' into 'develop'

feed/user_controller: Return 404 when the user is remote

Closes #1911

See merge request pleroma/pleroma!2811

Diffstat:

Mlib/pleroma/web/feed/user_controller.ex3++-
Mtest/web/feed/user_controller_test.exs11+++++++++++
2 files changed, 13 insertions(+), 1 deletion(-)

diff --git a/lib/pleroma/web/feed/user_controller.ex b/lib/pleroma/web/feed/user_controller.ex @@ -47,7 +47,7 @@ defmodule Pleroma.Web.Feed.UserController do "atom" end - with {_, %User{} = user} <- {:fetch_user, User.get_cached_by_nickname(nickname)} do + with {_, %User{local: true} = user} <- {:fetch_user, User.get_cached_by_nickname(nickname)} do activities = %{ type: ["Create"], @@ -71,6 +71,7 @@ defmodule Pleroma.Web.Feed.UserController do render_error(conn, :not_found, "Not found") end + def errors(conn, {:fetch_user, %User{local: false}}), do: errors(conn, {:error, :not_found}) def errors(conn, {:fetch_user, nil}), do: errors(conn, {:error, :not_found}) def errors(conn, _) do diff --git a/test/web/feed/user_controller_test.exs b/test/web/feed/user_controller_test.exs @@ -181,6 +181,17 @@ defmodule Pleroma.Web.Feed.UserControllerTest do assert activity_titles == ['public', 'unlisted'] end + + test "returns 404 when the user is remote", %{conn: conn} do + user = insert(:user, local: false) + + {:ok, _} = CommonAPI.post(user, %{status: "test"}) + + assert conn + |> put_req_header("accept", "application/atom+xml") + |> get(user_feed_path(conn, :feed, user.nickname)) + |> response(404) + end end # Note: see ActivityPubControllerTest for JSON format tests