Sha256: c9be37a615da936bde2880b52a13eeedc1c48d4cca2fb5850ead443ba293bb8b

Contents?: true

Size: 1.21 KB

Versions: 7

Compression:

Stored size: 1.21 KB

Contents

require 'janus/hooks/rememberable'

module Janus
  module Strategies
    class Rememberable < Base
      def valid?
        rememberable? && !remember_cookie.nil?
      end

      def authenticate!
        user = resource.find_for_remember_authentication(remember_cookie)

        if user.nil?
          destroy_remember_cookie
          pass
        else
          success!(user)
          extend_remember_period if resource.extend_remember_period
        end
      end

      def self.remember_cookie_name(scope)
        "remember_#{scope}_token"
      end

      private
        def destroy_remember_cookie
          request.cookies.delete(remember_cookie_name)
        end

        def extend_remember_period
          cookies[remember_cookie_name] = {
            :value => @user.remember_token,
            :expires => resource.remember_for.from_now
          }
          user.update_attribute(:remember_created_at, Time.now)
        end

        def remember_cookie_name
          self.class.remember_cookie_name(scope)
        end

        def remember_cookie
          request.cookies[remember_cookie_name]
        end

        def rememberable?
          resource.include?(Janus::Models::Rememberable)
        end
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
janus-0.10.1 lib/janus/strategies/rememberable.rb
janus-0.10.0 lib/janus/strategies/rememberable.rb
janus-0.9.1 lib/janus/strategies/rememberable.rb
janus-0.9.0 lib/janus/strategies/rememberable.rb
janus-0.8.1 lib/janus/strategies/rememberable.rb
janus-0.8.0 lib/janus/strategies/rememberable.rb
janus-0.7.0 lib/janus/strategies/rememberable.rb