lib/devise/models/rememberable.rb in devise-0.8.2 vs lib/devise/models/rememberable.rb in devise-0.9.0

- old
+ new

@@ -1,6 +1,7 @@ -require 'devise/models/cookie_serializer' +require 'devise/strategies/rememberable' +require 'devise/hooks/rememberable' module Devise module Models # Rememberable manages generating and clearing token for remember the user # from a saved cookie. Rememberable also has utility methods for dealing @@ -30,11 +31,11 @@ # User.serialize_from_cookie(cookie_string) module Rememberable def self.included(base) base.class_eval do - extend CookieSerializer + extend ClassMethods # Remember me option available in after_authentication hook. attr_accessor :remember_me end end @@ -67,9 +68,25 @@ end # Remember token expires at created time + remember_for configuration def remember_expires_at remember_created_at + self.class.remember_for + end + + module ClassMethods + # Create the cookie key using the record id and remember_token + def serialize_into_cookie(record) + "#{record.id}::#{record.remember_token}" + end + + # Recreate the user based on the stored cookie + def serialize_from_cookie(cookie) + record_id, record_token = cookie.split('::') + record = find(:first, :conditions => { :id => record_id }) if record_id + record if record.try(:valid_remember_token?, record_token) + end + + Devise::Models.config(self, :remember_for) end end end end