Fix HTTP 200 response code on paths to remote accounts that don't exist (#40341)

This commit is contained in:
Eugen Rochko
2026-10-02 11:48:25 +00:00
committed by GitHub
parent 1bf178ee59
commit 73fe2b7346
5 changed files with 27 additions and 14 deletions

View File

@@ -27,10 +27,7 @@ module WebAppControllerConcern
end
def redirect_unauthenticated_to_permalinks!
return if user_signed_in? && current_account.moved_to_account_id.nil?
permalink_redirector = PermalinkRedirector.new(request.original_fullpath)
return if permalink_redirector.redirect_path.blank?
return if (user_signed_in? && current_account.moved_to_account_id.nil?) || permalink_redirector.redirect_path.blank?
expires_in(15.seconds, public: true, stale_while_revalidate: 30.seconds, stale_if_error: 1.day) unless user_signed_in?
@@ -72,4 +69,8 @@ module WebAppControllerConcern
def set_referer_header
response.set_header('Referrer-Policy', Setting.allow_referrer_origin ? 'strict-origin-when-cross-origin' : 'same-origin')
end
def permalink_redirector
@permalink_redirector ||= PermalinkRedirector.new(request.original_fullpath)
end
end

View File

@@ -0,0 +1,12 @@
# frozen_string_literal: true
class RemoteAccountsController < HomeController
before_action :require_resource_exists!
private
def require_resource_exists!
# The page should still render normally, but the HTTP code should be modified
response.status = 404 if permalink_redirector.object.nil?
end
end