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