1
0
Fork 0
mirror of https://github.com/heartcombo/devise.git synced 2022-11-09 12:18:31 -05:00

Merge pull request #2954 from plataformatec/lm-last-request-at-json-serialization

Serialize the `last_request_at` entry as an Integer
This commit is contained in:
Lucas Mazza 2014-04-02 22:58:14 -03:00
commit 6027787930
2 changed files with 7 additions and 3 deletions

View file

@ -9,6 +9,11 @@ Warden::Manager.after_set_user do |record, warden, options|
if record && record.respond_to?(:timedout?) && warden.authenticated?(scope) && options[:store] != false if record && record.respond_to?(:timedout?) && warden.authenticated?(scope) && options[:store] != false
last_request_at = warden.session(scope)['last_request_at'] last_request_at = warden.session(scope)['last_request_at']
if last_request_at.is_a? Integer
last_request_at = Time.at(last_request_at).utc
end
proxy = Devise::Hooks::Proxy.new(warden) proxy = Devise::Hooks::Proxy.new(warden)
if record.timedout?(last_request_at) && !env['devise.skip_timeout'] if record.timedout?(last_request_at) && !env['devise.skip_timeout']
@ -22,7 +27,7 @@ Warden::Manager.after_set_user do |record, warden, options|
end end
unless env['devise.skip_trackable'] unless env['devise.skip_trackable']
warden.session(scope)['last_request_at'] = Time.now.utc warden.session(scope)['last_request_at'] = Time.now.utc.to_i
end end
end end
end end

View file

@ -8,12 +8,11 @@ class SessionTimeoutTest < ActionDispatch::IntegrationTest
test 'set last request at in user session after each request' do test 'set last request at in user session after each request' do
sign_in_as_user sign_in_as_user
old_last_request = last_request_at
assert_not_nil last_request_at assert_not_nil last_request_at
@controller.user_session.delete('last_request_at')
get users_path get users_path
assert_not_nil last_request_at assert_not_nil last_request_at
assert_not_equal old_last_request, last_request_at
end end
test 'set last request at in user session after each request is skipped if tracking is disabled' do test 'set last request at in user session after each request is skipped if tracking is disabled' do