Sha256: 852ce8c31346d31b6a47851d55806b71ea9e7c216b5c5ced39e247b925f68035

Contents?: true

Size: 1015 Bytes

Versions: 1

Compression:

Stored size: 1015 Bytes

Contents

module Warden::Mixins::Common
  def request
    @request ||= ActionDispatch::Request.new(env)
  end

  def reset_session!
    request.reset_session
  end

  def cookies
    request.cookie_jar
  end
end

class Warden::SessionSerializer
  def serialize(record)
    [record.class.name, record.to_key, record.authenticatable_salt]
  end

  def deserialize(keys)
    if keys.size == 2
      raise "Devise changed how it stores objects in session. If you are seeing this message, " <<
        "you can fix it by changing one character in your cookie secret or cleaning up your " <<
        "database sessions if you are using a db store."
    end

    klass, id, salt = keys

    begin
      record = klass.constantize.to_adapter.get(id)
      record if record && record.authenticatable_salt == salt
    rescue NameError => e
      if e.message =~ /uninitialized constant/
        Rails.logger.debug "[Devise] Trying to deserialize invalid class #{klass}"
        nil
      else
        raise
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
gonow-devise-1.2.rc lib/devise/rails/warden_compat.rb