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,7 +26,8 @@ class AccountController < ApplicationController
26 26
27 # action to perform login to the application 27 # action to perform login to the application
28 def login 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 return unless request.post? 31 return unless request.post?
31 32
32 self.current_user = plugins_alternative_authentication 33 self.current_user = plugins_alternative_authentication
@@ -125,7 +126,7 @@ class AccountController < ApplicationController @@ -125,7 +126,7 @@ class AccountController < ApplicationController
125 def change_password 126 def change_password
126 if request.post? 127 if request.post?
127 @user = current_user 128 @user = current_user
128 - begin 129 + begin
129 @user.change_password!(params[:current_password], 130 @user.change_password!(params[:current_password],
130 params[:new_password], 131 params[:new_password],
131 params[:new_password_confirmation]) 132 params[:new_password_confirmation])
@@ -218,7 +219,7 @@ class AccountController < ApplicationController @@ -218,7 +219,7 @@ class AccountController < ApplicationController
218 @question = @enterprise.question 219 @question = @enterprise.question
219 return unless check_answer 220 return unless check_answer
220 return unless check_acceptance_of_terms 221 return unless check_acceptance_of_terms
221 - 222 +
222 activation = load_enterprise_activation 223 activation = load_enterprise_activation
223 if activation && user 224 if activation && user
224 activation.requestor = user 225 activation.requestor = user
@@ -355,7 +356,9 @@ class AccountController < ApplicationController @@ -355,7 +356,9 @@ class AccountController < ApplicationController
355 end 356 end
356 357
357 def go_to_initial_page 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 case user.preferred_login_redirection 362 case user.preferred_login_redirection
360 when 'keep_on_same_page' 363 when 'keep_on_same_page'
361 redirect_back_or_default(user.admin_url) 364 redirect_back_or_default(user.admin_url)
test/functional/account_controller_test.rb
@@ -224,6 +224,12 @@ class AccountControllerTest < ActionController::TestCase @@ -224,6 +224,12 @@ class AccountControllerTest < ActionController::TestCase
224 assert_template 'password_recovery_sent' 224 assert_template 'password_recovery_sent'
225 end 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 should 'provide interface for entering new password' do 233 should 'provide interface for entering new password' do
228 change = ChangePassword.new 234 change = ChangePassword.new
229 ChangePassword.expects(:find_by_code).with('osidufgiashfkjsadfhkj99999').returns(change) 235 ChangePassword.expects(:find_by_code).with('osidufgiashfkjsadfhkj99999').returns(change)