Browse Source

For remote notices, redirect to the original instead of 404.

We shouldn't treat these like local statuses, but I don't think a 404
is the right choice either here, because within pleroma-fe, these are
valid URLs. So with remote notices you have the awkward situation
where clicking a link will behave differently depending on whether you
open it in a new tab or not; the new tab will 404 if it hits static-fe.

This new redirecting behavior should improve that situation.
fix/admin-api-grouped-reports-closed-reports
Phil Hagelberg 4 years ago
parent
commit
62f3a93049
2 changed files with 7 additions and 2 deletions
  1. +5
    -0
      lib/pleroma/web/static_fe/static_fe_controller.ex
  2. +2
    -2
      test/web/static_fe/static_fe_controller_test.exs

+ 5
- 0
lib/pleroma/web/static_fe/static_fe_controller.ex View File

@@ -77,6 +77,11 @@ defmodule Pleroma.Web.StaticFE.StaticFEController do

render(conn, "conversation.html", %{activities: timeline, meta: meta})
else
%Activity{object: %Object{data: data}} ->
conn
|> put_status(:found)
|> redirect(external: data["url"] || data["external_url"] || data["id"])

_ ->
conn
|> put_status(404)


+ 2
- 2
test/web/static_fe/static_fe_controller_test.exs View File

@@ -151,7 +151,7 @@ defmodule Pleroma.Web.StaticFE.StaticFEControllerTest do
assert html_response(conn, 404) =~ "not found"
end

test "404 for remote cached status", %{conn: conn} do
test "302 for remote cached status", %{conn: conn} do
user = insert(:user)

message = %{
@@ -175,7 +175,7 @@ defmodule Pleroma.Web.StaticFE.StaticFEControllerTest do
|> put_req_header("accept", "text/html")
|> get("/notice/#{activity.id}")

assert html_response(conn, 404) =~ "not found"
assert html_response(conn, 302) =~ "redirected"
end
end
end

Loading…
Cancel
Save