aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack/lib/action_controller
diff options
context:
space:
mode:
authorDavid Heinemeier Hansson <david@loudthinking.com>2008-05-11 13:18:49 -0500
committerDavid Heinemeier Hansson <david@loudthinking.com>2008-05-11 13:18:49 -0500
commitc43623c48b977d05413d86867651bfc3762b745a (patch)
tree4ef380d032f57fdff2e9567fcc7b76db96249a6e /actionpack/lib/action_controller
parent8857994f92293a78df9addbc0998ef02fca82fae (diff)
downloadrails-c43623c48b977d05413d86867651bfc3762b745a.tar.gz
rails-c43623c48b977d05413d86867651bfc3762b745a.tar.bz2
rails-c43623c48b977d05413d86867651bfc3762b745a.zip
Added session(:on) to turn session management back on in a controller subclass if the superclass turned it off (Peter Jones) [#136 state:resolved]
Diffstat (limited to 'actionpack/lib/action_controller')
-rw-r--r--actionpack/lib/action_controller/session_management.rb5
1 files changed, 5 insertions, 0 deletions
diff --git a/actionpack/lib/action_controller/session_management.rb b/actionpack/lib/action_controller/session_management.rb
index 8680104420..80a3ddd2c5 100644
--- a/actionpack/lib/action_controller/session_management.rb
+++ b/actionpack/lib/action_controller/session_management.rb
@@ -69,11 +69,16 @@ module ActionController #:nodoc:
# session :off,
# :if => Proc.new { |req| !(req.format.html? || req.format.js?) }
#
+ # # turn the session back on, useful when it was turned off in the
+ # # application controller, and you need it on in another controller
+ # session :on
+ #
# All session options described for ActionController::Base.process_cgi
# are valid arguments.
def session(*args)
options = args.extract_options!
+ options[:disabled] = false if args.delete(:on)
options[:disabled] = true if !args.empty?
options[:only] = [*options[:only]].map { |o| o.to_s } if options[:only]
options[:except] = [*options[:except]].map { |o| o.to_s } if options[:except]