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:
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