mirror of
https://github.com/discourse/discourse.git
synced 2024-11-22 13:39:42 +08:00
FIX: Don’t log an error when rendering a 404
Currently, in the list controller, when encountering an unsafe redirect error, a 404 is rendered. The problem is that it’s done in a way that it also logs a fatal error (because a `Discourse::NotFound` exception was raised inside a `rescue_from` block). This patch addresses that issue by simply rendering a 404 without raising any error.
This commit is contained in:
parent
4c0af24173
commit
bf3d8a0a94
|
@ -50,7 +50,7 @@ class ListController < ApplicationController
|
||||||
].flatten
|
].flatten
|
||||||
|
|
||||||
rescue_from ActionController::Redirecting::UnsafeRedirectError do
|
rescue_from ActionController::Redirecting::UnsafeRedirectError do
|
||||||
raise Discourse::NotFound
|
rescue_discourse_actions(:not_found, 404)
|
||||||
end
|
end
|
||||||
|
|
||||||
# Create our filters
|
# Create our filters
|
||||||
|
|
|
@ -1227,17 +1227,27 @@ RSpec.describe ListController do
|
||||||
end
|
end
|
||||||
|
|
||||||
context "when redirect raises an unsafe redirect error" do
|
context "when redirect raises an unsafe redirect error" do
|
||||||
|
let(:fake_logger) { FakeLogger.new }
|
||||||
|
|
||||||
before do
|
before do
|
||||||
ListController
|
ListController
|
||||||
.any_instance
|
.any_instance
|
||||||
.stubs(:redirect_to)
|
.stubs(:redirect_to)
|
||||||
.raises(ActionController::Redirecting::UnsafeRedirectError)
|
.raises(ActionController::Redirecting::UnsafeRedirectError)
|
||||||
|
Rails.logger.broadcast_to(fake_logger)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
after { Rails.logger.stop_broadcasting_to(fake_logger) }
|
||||||
|
|
||||||
it "renders a 404" do
|
it "renders a 404" do
|
||||||
get "/c/hello/world/bye/#{subsubcategory.id}"
|
get "/c/hello/world/bye/#{subsubcategory.id}"
|
||||||
expect(response).to have_http_status :not_found
|
expect(response).to have_http_status :not_found
|
||||||
end
|
end
|
||||||
|
|
||||||
|
it "doesn’t log an error" do
|
||||||
|
get "/c/hello/world/bye/#{subsubcategory.id}"
|
||||||
|
expect(fake_logger.fatals).to be_empty
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
context "when provided slug is gibberish" do
|
context "when provided slug is gibberish" do
|
||||||
|
|
Loading…
Reference in New Issue
Block a user