Commit 73ba49a7 authored by Eric Davis's avatar Eric Davis

Use the base layout for all 403, 404, and 500 pages. #6172

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@3949 e93f8b46-1217-0410-a6f0-8f06a7374b81
parent c090d115
......@@ -258,7 +258,7 @@ class ApplicationController < ActionController::Base
def render_403
@project = nil
respond_to do |format|
format.html { render :template => "common/403", :layout => (request.xhr? ? false : 'base'), :status => 403 }
format.html { render :template => "common/403", :layout => use_layout, :status => 403 }
format.atom { head 403 }
format.xml { head 403 }
format.js { head 403 }
......@@ -269,7 +269,7 @@ class ApplicationController < ActionController::Base
def render_404
respond_to do |format|
format.html { render :template => "common/404", :layout => !request.xhr?, :status => 404 }
format.html { render :template => "common/404", :layout => use_layout, :status => 404 }
format.atom { head 404 }
format.xml { head 404 }
format.js { head 404 }
......@@ -282,7 +282,7 @@ class ApplicationController < ActionController::Base
respond_to do |format|
format.html {
flash.now[:error] = msg
render :text => '', :layout => !request.xhr?, :status => 500
render :text => '', :layout => use_layout, :status => 500
}
format.atom { head 500 }
format.xml { head 500 }
......@@ -290,6 +290,13 @@ class ApplicationController < ActionController::Base
format.json { head 500 }
end
end
# Picks which layout to use based on the request
#
# @return [boolean, string] name of the layout to use or false for no layout
def use_layout
request.xhr? ? false : 'base'
end
def invalid_authenticity_token
if api_request?
......
require "#{File.dirname(__FILE__)}/../test_helper"
class LayoutTest < ActionController::IntegrationTest
fixtures :all
test "browsing to a missing page should render the base layout" do
get "/users/100000000"
assert_response :not_found
# UsersController uses the admin layout by default
assert_select "#admin-menu", :count => 0
end
test "browsing to an unauthorized page should render the base layout" do
user = User.find(9)
user.password, user.password_confirmation = 'test', 'test'
user.save!
log_user('miscuser9','test')
get "/admin"
assert_response :forbidden
assert_select "#admin-menu", :count => 0
end
end
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment