diff options
author | lain <lain@soykaf.club> | 2020-07-29 12:16:20 +0000 |
---|---|---|
committer | lain <lain@soykaf.club> | 2020-07-29 12:16:20 +0000 |
commit | de5c7e20a36ecb0f08e8c1d8248cdb288003cacf (patch) | |
tree | 586c0c7a6af82f7872489ae28fb1a4037f4fbc5e | |
parent | 79f9ddd8b725519f719219b70b8dd8558d5212cf (diff) | |
parent | 2e27847573e91946e6777f9aa18b9cf9ccaf820d (diff) | |
download | pleroma-de5c7e20a36ecb0f08e8c1d8248cdb288003cacf.tar.gz pleroma-de5c7e20a36ecb0f08e8c1d8248cdb288003cacf.zip |
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
-rw-r--r-- | lib/pleroma/web/feed/user_controller.ex | 3 | ||||
-rw-r--r-- | test/web/feed/user_controller_test.exs | 11 |
2 files changed, 13 insertions, 1 deletions
diff --git a/lib/pleroma/web/feed/user_controller.ex b/lib/pleroma/web/feed/user_controller.ex index d56f43818..9cd334a33 100644 --- 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 index fa2ed1ea5..0d2a61967 100644 --- 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 |