Commit 6871a9ec86ddfd796c0dd7536166ca1cc3cb349c

Authored by Rodrigo Souto
2 parents b5f814e4 66759458

Merge commit 'refs/merge-requests/301' of git://gitorious.org/noosfero/noosfero …

…into merge-requests/301
app/controllers/public/account_controller.rb
... ... @@ -26,7 +26,8 @@ class AccountController < ApplicationController
26 26  
27 27 # action to perform login to the application
28 28 def login
29   - store_location(request.referer) unless session[:return_to]
  29 + store_location(request.referer) unless params[:return_to] or session[:return_to]
  30 +
30 31 return unless request.post?
31 32  
32 33 self.current_user = plugins_alternative_authentication
... ... @@ -125,7 +126,7 @@ class AccountController < ApplicationController
125 126 def change_password
126 127 if request.post?
127 128 @user = current_user
128   - begin
  129 + begin
129 130 @user.change_password!(params[:current_password],
130 131 params[:new_password],
131 132 params[:new_password_confirmation])
... ... @@ -218,7 +219,7 @@ class AccountController < ApplicationController
218 219 @question = @enterprise.question
219 220 return unless check_answer
220 221 return unless check_acceptance_of_terms
221   -
  222 +
222 223 activation = load_enterprise_activation
223 224 if activation && user
224 225 activation.requestor = user
... ... @@ -355,7 +356,9 @@ class AccountController < ApplicationController
355 356 end
356 357  
357 358 def go_to_initial_page
358   - if environment.enabled?('allow_change_of_redirection_after_login')
  359 + if params[:return_to]
  360 + redirect_to params[:return_to]
  361 + elsif environment.enabled?('allow_change_of_redirection_after_login')
359 362 case user.preferred_login_redirection
360 363 when 'keep_on_same_page'
361 364 redirect_back_or_default(user.admin_url)
... ...
test/functional/account_controller_test.rb
... ... @@ -224,6 +224,12 @@ class AccountControllerTest < ActionController::TestCase
224 224 assert_template 'password_recovery_sent'
225 225 end
226 226  
  227 + should 'use redirect_to parameter on successful login' do
  228 + url = 'http://kernel.org'
  229 + post :login, :return_to => url, :user => {:login => 'ze', :password => 'test'}
  230 + assert_redirected_to url
  231 + end
  232 +
227 233 should 'provide interface for entering new password' do
228 234 change = ChangePassword.new
229 235 ChangePassword.expects(:find_by_code).with('osidufgiashfkjsadfhkj99999').returns(change)
... ...