From ef2e75f07212c28eb557012d02d45e51bae2f8a5 Mon Sep 17 00:00:00 2001 From: Jean-Philippe Lang Date: Sat, 9 May 2015 10:43:09 +0000 Subject: [PATCH] Set a back_url when forcing new login after session expiration (#19655). Patch by Holger Just. git-svn-id: http://svn.redmine.org/redmine/trunk@14245 e93f8b46-1217-0410-a6f0-8f06a7374b81 --- app/controllers/application_controller.rb | 4 ++-- test/functional/sessions_test.rb | 10 +++++----- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index 6c16f99c1..b6e2eb120 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -63,9 +63,9 @@ class ApplicationController < ActionController::Base if session[:user_id] if session_expired? && !try_to_autologin set_localization(User.active.find_by_id(session[:user_id])) - reset_session + self.logged_user = nil flash[:error] = l(:error_session_expired) - redirect_to signin_url + require_login else session[:atime] = Time.now.utc.to_i end diff --git a/test/functional/sessions_test.rb b/test/functional/sessions_test.rb index 1d75fc8db..9e7032682 100644 --- a/test/functional/sessions_test.rb +++ b/test/functional/sessions_test.rb @@ -56,14 +56,14 @@ class SessionsTest < ActionController::TestCase def test_user_session_without_ctime_should_be_reset_if_lifetime_enabled with_settings :session_lifetime => '720' do get :index, {}, {:user_id => 2} - assert_redirected_to '/login' + assert_redirected_to 'http://test.host/login?back_url=http%3A%2F%2Ftest.host%2F' end end def test_user_session_with_expired_ctime_should_be_reset_if_lifetime_enabled with_settings :session_timeout => '720' do get :index, {}, {:user_id => 2, :atime => 2.days.ago.utc.to_i} - assert_redirected_to '/login' + assert_redirected_to 'http://test.host/login?back_url=http%3A%2F%2Ftest.host%2F' end end @@ -77,14 +77,14 @@ class SessionsTest < ActionController::TestCase def test_user_session_without_atime_should_be_reset_if_timeout_enabled with_settings :session_timeout => '60' do get :index, {}, {:user_id => 2} - assert_redirected_to '/login' + assert_redirected_to 'http://test.host/login?back_url=http%3A%2F%2Ftest.host%2F' end end def test_user_session_with_expired_atime_should_be_reset_if_timeout_enabled with_settings :session_timeout => '60' do get :index, {}, {:user_id => 2, :atime => 4.hours.ago.utc.to_i} - assert_redirected_to '/login' + assert_redirected_to 'http://test.host/login?back_url=http%3A%2F%2Ftest.host%2F' end end @@ -117,7 +117,7 @@ class SessionsTest < ActionController::TestCase with_settings :session_timeout => '60' do get :index, {}, {:user_id => user.id, :atime => 4.hours.ago.utc.to_i} - assert_redirected_to '/login' + assert_redirected_to 'http://test.host/login?back_url=http%3A%2F%2Ftest.host%2F' assert_include "Veuillez vous reconnecter", flash[:error] assert_equal :fr, current_language end -- 2.39.5