Sha256: f463e47f4380572ba804d9a41c150eaa48d0d39876348c6ed39c3d08f9f28c30
Contents?: true
Size: 1.52 KB
Versions: 6
Compression:
Stored size: 1.52 KB
Contents
module Janus module Models # = Rememberable # # Allows a user to check a remember me check box when she logs in through # DatabaseAuthenticatable. It will set a cookie with a configurable # expiration date. # # == Required columns # # - remember_token # - remember_created_at # # == Configuration # # - remember_for - how long to remember the user, for instance <tt>1.week</tt>. # - :extend_remember_period - set to true to extend the remember cookie every time the user logs in. # module Rememberable extend ActiveSupport::Concern included do include Janus::Models::Base unless include?(Janus::Models::Base) begin attr_protected :remember_token, :remember_created_at rescue end janus_config :remember_for, :extend_remember_period end # Generates an unique remote_token. def remember_me! self.remember_token = self.class.generate_token(:remember_token) self.remember_created_at = Time.now save end # Nullifies remote_token. def forget_me! self.remember_token = self.remember_created_at = nil save end module ClassMethods def find_for_remember_authentication(token) user = where(:remember_token => token).first unless token.blank? if user && user.remember_created_at < remember_for.ago user.forget_me! user = nil end user end end end end end
Version data entries
6 entries across 6 versions & 1 rubygems