lib/devise/rails/warden_compat.rb in devise-0.8.2 vs lib/devise/rails/warden_compat.rb in devise-0.9.0
- old
+ new
@@ -1,25 +1,25 @@
-# Taken from RailsWarden, thanks to Hassox. http://github.com/hassox/rails_warden
module Warden::Mixins::Common
def request
- return @request if @request
- if env['action_controller.rescue.request']
- @request = env['action_controller.rescue.request']
- else
- Rack::Request.new(env)
- end
+ @request ||= env['action_controller.rescue.request']
end
def reset_session!
raw_session.inspect # why do I have to inspect it to get it to clear?
raw_session.clear
end
def response
- return @response if @response
- if env['action_controller.rescue.response']
- @response = env['action_controller.rescue.response']
- else
- Rack::Response.new(env)
- end
+ @response ||= env['action_controller.rescue.response']
end
end
+
+class Warden::SessionSerializer
+ def serialize(record)
+ [record.class, record.id]
+ end
+
+ def deserialize(keys)
+ klass, id = keys
+ klass.find(:first, :conditions => { :id => id })
+ end
+end
\ No newline at end of file