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,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) |