Commit 6871a9ec86ddfd796c0dd7536166ca1cc3cb349c
Exists in
master
and in
28 other branches
Merge commit 'refs/merge-requests/301' of git://gitorious.org/noosfero/noosfero …
…into merge-requests/301
Showing
2 changed files
with
13 additions
and
4 deletions
Show diff stats
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) | ... | ... |