Don't redirect XHR requests to /login.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@11962 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
parent
60d2a5e322
commit
136cdc765a
|
@ -195,7 +195,13 @@ class ApplicationController < ActionController::Base
|
|||
url = url_for(:controller => params[:controller], :action => params[:action], :id => params[:id], :project_id => params[:project_id])
|
||||
end
|
||||
respond_to do |format|
|
||||
format.html { redirect_to :controller => "account", :action => "login", :back_url => url }
|
||||
format.html {
|
||||
if request.xhr?
|
||||
head :unauthorized
|
||||
else
|
||||
redirect_to :controller => "account", :action => "login", :back_url => url
|
||||
end
|
||||
}
|
||||
format.atom { redirect_to :controller => "account", :action => "login", :back_url => url }
|
||||
format.xml { head :unauthorized, 'WWW-Authenticate' => 'Basic realm="Redmine API"' }
|
||||
format.js { head :unauthorized, 'WWW-Authenticate' => 'Basic realm="Redmine API"' }
|
||||
|
|
|
@ -136,4 +136,20 @@ class WelcomeControllerTest < ActionController::TestCase
|
|||
assert_equal [0, 100], @controller.api_offset_and_limit({:page => 1, :limit => 100})
|
||||
assert_equal [200, 100], @controller.api_offset_and_limit({:page => 3, :limit => 100})
|
||||
end
|
||||
|
||||
def test_unhautorized_exception_with_anonymous_should_redirect_to_login
|
||||
WelcomeController.any_instance.stubs(:index).raises(::Unauthorized)
|
||||
|
||||
get :index
|
||||
assert_response 302
|
||||
assert_redirected_to('/login?back_url='+CGI.escape('http://test.host/'))
|
||||
end
|
||||
|
||||
def test_unhautorized_exception_with_anonymous_and_xmlhttprequest_should_respond_with_401_to_anonymous
|
||||
WelcomeController.any_instance.stubs(:index).raises(::Unauthorized)
|
||||
|
||||
@request.env["HTTP_X_REQUESTED_WITH"] = "XMLHttpRequest"
|
||||
get :index
|
||||
assert_response 401
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in New Issue