|
93a47874
»
|
binarylogic |
2008-11-09 |
Added Sha1 crypto provider ... |
1 |
module Authlogic |
| |
2 |
module Session |
|
b83abcac
»
|
binarylogic |
2008-11-12 |
Added in authentication by ... |
3 |
# = Session |
| |
4 |
# |
| |
5 |
# Handles all parts of authentication that deal with sessions. Such as persisting a session and saving / destroy a session. |
|
93a47874
»
|
binarylogic |
2008-11-09 |
Added Sha1 crypto provider ... |
6 |
module Session |
| |
7 |
def self.included(klass) |
|
61ce15d1
»
|
binarylogic |
2009-02-11 |
Fixed issue when calling st... |
8 |
klass.after_save :update_session, :if => :persisting? |
|
febb7c17
»
|
binarylogic |
2009-02-11 |
Fixed logout on stale bug |
9 |
klass.after_destroy :update_session, :if => :persisting? |
|
61ce15d1
»
|
binarylogic |
2009-02-11 |
Fixed issue when calling st... |
10 |
klass.after_find :update_session, :if => :persisting? # to continue persisting the session after an http_auth request |
|
93a47874
»
|
binarylogic |
2008-11-09 |
Added Sha1 crypto provider ... |
11 |
end |
| |
12 |
|
| |
13 |
# Tries to validate the session from information in the session |
| |
14 |
def valid_session? |
|
62b18a9d
»
|
binarylogic |
2008-11-19 |
Skip validation for reset_p... |
15 |
persistence_token, record_id = session_credentials |
| |
16 |
if !persistence_token.blank? |
|
95440767
»
|
binarylogic |
2008-11-19 |
Store record id with sessio... |
17 |
if record_id |
|
b5dd3742
»
|
binarylogic |
2009-01-22 |
Use klass.primary_key inste... |
18 |
record = search_for_record("find_by_#{klass.primary_key}", record_id) |
|
95440767
»
|
binarylogic |
2008-11-19 |
Store record id with sessio... |
19 |
self.unauthorized_record = record if record && record.send(persistence_token_field) == persistence_token |
| |
20 |
else |
| |
21 |
# For backwards compatibility, will eventually be removed, just need to let the sessions update theirself |
| |
22 |
record = search_for_record("find_by_#{persistence_token_field}", persistence_token) |
| |
23 |
if record |
| |
24 |
controller.session["#{session_key}_id"] = record.send(record.class.primary_key) |
| |
25 |
self.unauthorized_record = record |
| |
26 |
end |
| |
27 |
end |
|
21d52f71
»
|
binarylogic |
2009-02-08 |
The class level find method... |
28 |
valid? |
|
69f2c2b6
»
|
binarylogic |
2009-01-08 |
Add a logout_on_timeout con...  |
29 |
else |
| |
30 |
false |
|
93a47874
»
|
binarylogic |
2008-11-09 |
Added Sha1 crypto provider ... |
31 |
end |
| |
32 |
end |
| |
33 |
|
| |
34 |
private |
| |
35 |
def session_credentials |
|
95440767
»
|
binarylogic |
2008-11-19 |
Store record id with sessio... |
36 |
[controller.session[session_key], controller.session["#{session_key}_id"]].compact |
|
93a47874
»
|
binarylogic |
2008-11-09 |
Added Sha1 crypto provider ... |
37 |
end |
| |
38 |
|
|
61ce15d1
»
|
binarylogic |
2009-02-11 |
Fixed issue when calling st... |
39 |
def update_session |
|
febb7c17
»
|
binarylogic |
2009-02-11 |
Fixed logout on stale bug |
40 |
controller.session[session_key] = record && record.send(persistence_token_field) |
| |
41 |
controller.session["#{session_key}_id"] = record && record.send(record.class.primary_key) |
|
93a47874
»
|
binarylogic |
2008-11-09 |
Added Sha1 crypto provider ... |
42 |
end |
| |
43 |
end |
| |
44 |
end |
| |
45 |
end |