aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack/lib/action_controller/session/abstract_store.rb
diff options
context:
space:
mode:
authorPratik Naik <pratiknaik@gmail.com>2009-01-28 05:05:07 +0000
committerPratik Naik <pratiknaik@gmail.com>2009-01-28 05:05:48 +0000
commit2ae8d3079b96d343f8cea8513929d656013f880e (patch)
treeb0fa9eb483140c2673a230705fd390377bf0f717 /actionpack/lib/action_controller/session/abstract_store.rb
parent9714a9b0019e6ca0e120a253037fa8a561b22823 (diff)
downloadrails-2ae8d3079b96d343f8cea8513929d656013f880e.tar.gz
rails-2ae8d3079b96d343f8cea8513929d656013f880e.tar.bz2
rails-2ae8d3079b96d343f8cea8513929d656013f880e.zip
Session cookie header should always be set if :expire_after option is specified
Diffstat (limited to 'actionpack/lib/action_controller/session/abstract_store.rb')
-rw-r--r--actionpack/lib/action_controller/session/abstract_store.rb6
1 files changed, 4 insertions, 2 deletions
diff --git a/actionpack/lib/action_controller/session/abstract_store.rb b/actionpack/lib/action_controller/session/abstract_store.rb
index bf09fd33c5..9434c2e05e 100644
--- a/actionpack/lib/action_controller/session/abstract_store.rb
+++ b/actionpack/lib/action_controller/session/abstract_store.rb
@@ -102,8 +102,10 @@ module ActionController
response = @app.call(env)
session_data = env[ENV_SESSION_KEY]
- if !session_data.is_a?(AbstractStore::SessionHash) || session_data.send(:loaded?)
- options = env[ENV_SESSION_OPTIONS_KEY]
+ options = env[ENV_SESSION_OPTIONS_KEY]
+
+ if !session_data.is_a?(AbstractStore::SessionHash) || session_data.send(:loaded?) || options[:expire_after]
+ session_data.send(:load!) if session_data.is_a?(AbstractStore::SessionHash) && !session_data.send(:loaded?)
if session_data.is_a?(AbstractStore::SessionHash)
sid = session_data.id