@@ -55,7 +55,7 @@ module Session
55
55
class ActiveRecordStore < ActionDispatch ::Session ::AbstractSecureStore
56
56
# The class used for session storage. Defaults to
57
57
# ActiveRecord::SessionStore::Session
58
- cattr_accessor :session_class
58
+ class_attribute :session_class
59
59
60
60
SESSION_RECORD_KEY = 'rack.session.record'
61
61
ENV_SESSION_OPTIONS_KEY = Rack ::RACK_SESSION_OPTIONS
@@ -67,7 +67,7 @@ def get_session(request, sid)
67
67
# If the sid was nil or if there is no pre-existing session under the sid,
68
68
# force the generation of a new sid and associate a new session associated with the new sid
69
69
sid = generate_sid
70
- session = @@ session_class. new ( :session_id => sid . private_id , :data => { } )
70
+ session = session_class . new ( :session_id => sid . private_id , :data => { } )
71
71
end
72
72
request . env [ SESSION_RECORD_KEY ] = session
73
73
[ sid , session . data ]
@@ -106,7 +106,7 @@ def delete_session(request, session_id, options)
106
106
new_sid = generate_sid
107
107
108
108
if options [ :renew ]
109
- new_model = @@ session_class. new ( :session_id => new_sid . private_id , :data => data )
109
+ new_model = session_class . new ( :session_id => new_sid . private_id , :data => data )
110
110
new_model . save
111
111
request . env [ SESSION_RECORD_KEY ] = new_model
112
112
end
@@ -120,7 +120,7 @@ def get_session_model(request, id)
120
120
model = get_session_with_fallback ( id )
121
121
unless model
122
122
id = generate_sid
123
- model = @@ session_class. new ( :session_id => id . private_id , :data => { } )
123
+ model = session_class . new ( :session_id => id . private_id , :data => { } )
124
124
model . save
125
125
end
126
126
if request . env [ ENV_SESSION_OPTIONS_KEY ] [ :id ] . nil?
@@ -134,9 +134,9 @@ def get_session_model(request, id)
134
134
135
135
def get_session_with_fallback ( sid )
136
136
if sid && !self . class . private_session_id? ( sid . public_id )
137
- if ( secure_session = @@ session_class. find_by_session_id ( sid . private_id ) )
137
+ if ( secure_session = session_class . find_by_session_id ( sid . private_id ) )
138
138
secure_session
139
- elsif ( insecure_session = @@ session_class. find_by_session_id ( sid . public_id ) )
139
+ elsif ( insecure_session = session_class . find_by_session_id ( sid . public_id ) )
140
140
insecure_session . session_id = sid . private_id # this causes the session to be secured
141
141
insecure_session
142
142
end
0 commit comments