Skip to content

Commit febb7c1

Browse files
committed
Fixed logout on stale bug
1 parent 61ce15d commit febb7c1

File tree

2 files changed

+9
-11
lines changed

2 files changed

+9
-11
lines changed

lib/authlogic/session/session.rb

+3-10
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ module Session
66
module Session
77
def self.included(klass)
88
klass.after_save :update_session, :if => :persisting?
9-
klass.after_destroy :reset_session, :if => :persisting?
9+
klass.after_destroy :update_session, :if => :persisting?
1010
klass.after_find :update_session, :if => :persisting? # to continue persisting the session after an http_auth request
1111
end
1212

@@ -36,16 +36,9 @@ def session_credentials
3636
[controller.session[session_key], controller.session["#{session_key}_id"]].compact
3737
end
3838

39-
def reset_session
40-
controller.session[session_key] = nil
41-
controller.session["#{session_key}_id"] = nil
42-
end
43-
4439
def update_session
45-
if record
46-
controller.session[session_key] = record.send(persistence_token_field)
47-
controller.session["#{session_key}_id"] = record.send(record.class.primary_key)
48-
end
40+
controller.session[session_key] = record && record.send(persistence_token_field)
41+
controller.session["#{session_key}_id"] = record && record.send(record.class.primary_key)
4942
end
5043
end
5144
end

test/session_tests/timeout_test.rb

+6-1
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,12 @@ def test_stale
4040
set_session_for(ben)
4141
session = UserSession.find
4242
assert !session.stale?
43-
session.record.last_request_at = 3.years.ago
43+
44+
ben.update_attribute(:last_request_at, 3.years.ago)
45+
session = UserSession.find
4446
assert session.stale?
47+
assert_nil @controller.session["user_credentials"]
48+
assert_nil @controller.session["user_credentials_id"]
4549
UserSession.logout_on_timeout = false
4650
end
4751

@@ -55,6 +59,7 @@ def test_stale_find
5559
assert session.stale?
5660

5761
ben.update_attribute(:last_request_at, Time.now)
62+
set_session_for(ben)
5863
session = UserSession.find
5964
assert !session.stale?
6065
end

0 commit comments

Comments
 (0)