From da9f713d2c3be94361579d41645ed79e15958686 Mon Sep 17 00:00:00 2001 From: Jeremy Kemper Date: Sun, 20 Nov 2005 09:06:43 +0000 Subject: r3209@asus: jeremy | 2005-11-20 01:04:22 -0800 If sessions are disabled, return a hash that raises an error when it's accessed. git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@3109 5ecf4fe2-1ee6-0310-87b1-e25e094e27de --- actionpack/lib/action_controller/cgi_process.rb | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'actionpack/lib/action_controller') diff --git a/actionpack/lib/action_controller/cgi_process.rb b/actionpack/lib/action_controller/cgi_process.rb index 812899b327..c0cbc22edd 100644 --- a/actionpack/lib/action_controller/cgi_process.rb +++ b/actionpack/lib/action_controller/cgi_process.rb @@ -93,7 +93,7 @@ module ActionController #:nodoc: def session unless @session if @session_options == false - @session = Hash.new + @session = disabled_session_hash else stale_session_check! do if session_options_with_string_keys['new_session'] == true @@ -121,13 +121,17 @@ module ActionController #:nodoc: # Delete an old session if it exists then create a new one. def new_session if @session_options == false - Hash.new + disabled_session_hash else CGI::Session.new(@cgi, session_options_with_string_keys.merge("new_session" => false)).delete rescue nil CGI::Session.new(@cgi, session_options_with_string_keys.merge("new_session" => true)) end end + def disabled_session_hash + Hash.new { |h,k| raise "You disabled sessions but are attempting to set session[#{k.inspect}]" } + end + def stale_session_check! yield rescue ArgumentError => argument_error -- cgit v1.2.3