diff --git a/app/controllers/application.rb b/app/controllers/application.rb index e8d0a85b7..29772ca13 100644 --- a/app/controllers/application.rb +++ b/app/controllers/application.rb @@ -82,7 +82,13 @@ class ApplicationController < ActionController::Base def require_login if !User.current.logged? - redirect_to :controller => "account", :action => "login", :back_url => url_for(params) + # Extract only the basic url parameters on non-GET requests + if request.get? + url = url_for(params) + else + url = url_for(:controller => params[:controller], :action => params[:action], :id => params[:id], :project_id => params[:project_id]) + end + redirect_to :controller => "account", :action => "login", :back_url => url return false end true diff --git a/doc/CHANGELOG b/doc/CHANGELOG index c1f8803b5..58b73601d 100644 --- a/doc/CHANGELOG +++ b/doc/CHANGELOG @@ -10,6 +10,7 @@ http://www.redmine.org/ * Fixed: pre tags containing "
{ :login => 'psmith', :firstname => 'Paul'}, :password => "psmith09", :password_confirmation => "psmith09"
+ assert_response :redirect
+ assert_redirected_to "/login?back_url=http%3A%2F%2Fwww.example.com%2Fusers%2Fadd"
+ end
end