##// END OF EJS Templates
Merged r11519 and r11520 from trunk (#13335)....
Jean-Philippe Lang -
r11339:4413e0e52e2c
parent child
Show More
@@ -232,7 +232,6 class AccountController < ApplicationController
232
232
233 def set_autologin_cookie(user)
233 def set_autologin_cookie(user)
234 token = Token.create(:user => user, :action => 'autologin')
234 token = Token.create(:user => user, :action => 'autologin')
235 cookie_name = Redmine::Configuration['autologin_cookie_name'] || 'autologin'
236 cookie_options = {
235 cookie_options = {
237 :value => token.value,
236 :value => token.value,
238 :expires => 1.year.from_now,
237 :expires => 1.year.from_now,
@@ -240,7 +239,7 class AccountController < ApplicationController
240 :secure => (Redmine::Configuration['autologin_cookie_secure'] ? true : false),
239 :secure => (Redmine::Configuration['autologin_cookie_secure'] ? true : false),
241 :httponly => true
240 :httponly => true
242 }
241 }
243 cookies[cookie_name] = cookie_options
242 cookies[autologin_cookie_name] = cookie_options
244 end
243 end
245
244
246 # Onthefly creation failed, display the registration form to fill/fix attributes
245 # Onthefly creation failed, display the registration form to fill/fix attributes
@@ -35,7 +35,7 class ApplicationController < ActionController::Base
35 protect_from_forgery
35 protect_from_forgery
36 def handle_unverified_request
36 def handle_unverified_request
37 super
37 super
38 cookies.delete(:autologin)
38 cookies.delete(autologin_cookie_name)
39 end
39 end
40
40
41 before_filter :session_expiration, :user_setup, :check_if_login_required, :set_localization
41 before_filter :session_expiration, :user_setup, :check_if_login_required, :set_localization
@@ -127,10 +127,14 class ApplicationController < ActionController::Base
127 user
127 user
128 end
128 end
129
129
130 def autologin_cookie_name
131 Redmine::Configuration['autologin_cookie_name'].presence || 'autologin'
132 end
133
130 def try_to_autologin
134 def try_to_autologin
131 if cookies[:autologin] && Setting.autologin?
135 if cookies[autologin_cookie_name] && Setting.autologin?
132 # auto-login feature starts a new session
136 # auto-login feature starts a new session
133 user = User.try_to_autologin(cookies[:autologin])
137 user = User.try_to_autologin(cookies[autologin_cookie_name])
134 if user
138 if user
135 reset_session
139 reset_session
136 start_user_session(user)
140 start_user_session(user)
@@ -153,7 +157,7 class ApplicationController < ActionController::Base
153 # Logs out current user
157 # Logs out current user
154 def logout_user
158 def logout_user
155 if User.current.logged?
159 if User.current.logged?
156 cookies.delete :autologin
160 cookies.delete(autologin_cookie_name)
157 Token.delete_all(["user_id = ? AND action = ?", User.current.id, 'autologin'])
161 Token.delete_all(["user_id = ? AND action = ?", User.current.id, 'autologin'])
158 self.logged_user = nil
162 self.logged_user = nil
159 end
163 end
@@ -68,6 +68,33 class AccountTest < ActionController::IntegrationTest
68 assert_not_nil user.reload.last_login_on
68 assert_not_nil user.reload.last_login_on
69 end
69 end
70
70
71 def test_autologin_should_use_autologin_cookie_name
72 Token.delete_all
73 Redmine::Configuration.stubs(:[]).with('autologin_cookie_name').returns('custom_autologin')
74 Redmine::Configuration.stubs(:[]).with('autologin_cookie_path').returns('/')
75 Redmine::Configuration.stubs(:[]).with('autologin_cookie_secure').returns(false)
76
77 with_settings :autologin => '7' do
78 assert_difference 'Token.count' do
79 post '/login', :username => 'admin', :password => 'admin', :autologin => 1
80 end
81 assert_response 302
82 assert cookies['custom_autologin'].present?
83 token = cookies['custom_autologin']
84
85 # Session is cleared
86 reset!
87 cookies['custom_autologin'] = token
88 get '/my/page'
89 assert_response :success
90
91 assert_difference 'Token.count', -1 do
92 post '/logout'
93 end
94 assert cookies['custom_autologin'].blank?
95 end
96 end
97
71 def test_lost_password
98 def test_lost_password
72 Token.delete_all
99 Token.delete_all
73
100
General Comments 0
You need to be logged in to leave comments. Login now