Sha256: 9b1d663547ac6c910d6912f2c4fa8c6b8499635e05dc88ff715183d30b3d60d8

Contents?: true

Size: 1.52 KB

Versions: 77

Compression:

Stored size: 1.52 KB

Contents

module Authlogic
  module Session
    # Allows you to separate sessions with an id, ultimately letting you create multiple sessions for the same user.
    module Id
      def self.included(klass)
        klass.class_eval do
          attr_writer :id
        end
      end
      
      # Setting the id if it is passed in the credentials.
      def credentials=(value)
        super
        values = value.is_a?(Array) ? value : [value]
        self.id = values.last if values.last.is_a?(Symbol)
      end
      
      # Allows you to set a unique identifier for your session, so that you can have more than 1 session at a time.
      # A good example when this might be needed is when you want to have a normal user session and a "secure" user session.
      # The secure user session would be created only when they want to modify their billing information, or other sensitive
      # information. Similar to me.com. This requires 2 user sessions. Just use an id for the "secure" session and you should be good.
      #
      # You can set the id during initialization (see initialize for more information), or as an attribute:
      #
      #   session.id = :my_id
      #
      # Just be sure and set your id before you save your session.
      #
      # Lastly, to retrieve your session with the id check out the find class method.
      def id
        @id
      end
      
      private
        # Used for things like cookie_key, session_key, etc.
        def build_key(last_part)
          [id, super].compact.join("_")
        end
    end
  end
end

Version data entries

77 entries across 77 versions & 22 rubygems

Version Path
authlogic-3.4.6 lib/authlogic/session/id.rb
authlogic-3.4.5 lib/authlogic/session/id.rb
authlogic-2.1.11 lib/authlogic/session/id.rb
authlogic-2.1.10 lib/authlogic/session/id.rb
authlogic-3.4.4 lib/authlogic/session/id.rb
authlogic-3.4.3 lib/authlogic/session/id.rb
binarylogic-authlogic-2.1.0 lib/authlogic/session/id.rb
binarylogic-authlogic-2.1.1 lib/authlogic/session/id.rb
crankharder-authlogic-2.1.1 lib/authlogic/session/id.rb
jlecour-authlogic-2.1.2 lib/authlogic/session/id.rb
kschrader-authlogic-2.1.2 lib/authlogic/session/id.rb
kschrader-authlogic-2.1.3 lib/authlogic/session/id.rb
authlogic-3.4.2 lib/authlogic/session/id.rb
authlogic-3.4.1 lib/authlogic/session/id.rb
authlogic-3.4.0 lib/authlogic/session/id.rb
authlogic-3.3.0 lib/authlogic/session/id.rb
authlogic-3.2.0 lib/authlogic/session/id.rb
authlogic-3.1.3 lib/authlogic/session/id.rb
authlogic-2.1.8 lib/authlogic/session/id.rb
authlogic-2.1.7 lib/authlogic/session/id.rb