diff options
author | Pratik Naik <pratiknaik@gmail.com> | 2009-01-28 05:05:07 +0000 |
---|---|---|
committer | Pratik Naik <pratiknaik@gmail.com> | 2009-01-28 05:05:48 +0000 |
commit | 2ae8d3079b96d343f8cea8513929d656013f880e (patch) | |
tree | b0fa9eb483140c2673a230705fd390377bf0f717 /actionpack/lib/action_controller/session/abstract_store.rb | |
parent | 9714a9b0019e6ca0e120a253037fa8a561b22823 (diff) | |
download | rails-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.rb | 6 |
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 |