Sha256: cc92a20fe38c848023fb9fb23a1ae4f5e6580c0b302283961485149089af3fa3

Contents?: true

Size: 1.36 KB

Versions: 13

Compression:

Stored size: 1.36 KB

Contents

# After authenticate hook to verify if the user in the given scope asked to be
# remembered while he does not sign out. Generates a new remember token for
# that specific user and adds a cookie with this user info to sign in this user
# automatically without asking for credentials. Refer to rememberable strategy
# for more info.
Warden::Manager.prepend_after_authentication do |record, warden, options|
  scope = options[:scope]
  remember_me = warden.params[scope].try(:fetch, :remember_me, nil)

  if Devise::TRUE_VALUES.include?(remember_me) &&
     warden.authenticated?(scope) && record.respond_to?(:remember_me!)
    record.remember_me!

    warden.response.set_cookie "remember_#{scope}_token", {
      :value => record.class.serialize_into_cookie(record),
      :expires => record.remember_expires_at,
      :path => "/"
    }
  end
end

# Before logout hook to forget the user in the given scope, only if rememberable
# is activated for this scope. Also clear remember token to ensure the user
# won't be remembered again.
# Notice that we forget the user if the record is frozen. This usually means the
# user was just deleted.
Warden::Manager.before_logout do |record, warden, options|
  scope = options[:scope]
  if record.respond_to?(:forget_me!)
    record.forget_me! unless record.frozen?
    warden.response.delete_cookie "remember_#{scope}_token", :path => "/"
  end
end

Version data entries

13 entries across 8 versions & 3 rubygems

Version Path
graffititracker_devise-1.0.11 lib/devise/hooks/rememberable.rb
devise-1.0.11 lib/devise/hooks/rememberable.rb
devise-1.0.10 lib/devise/hooks/rememberable.rb
devise_ennder-1.4.1.0.9 test/rails_app/vendor/plugins/devise/lib/devise/hooks/rememberable.rb
devise_ennder-1.4.1.0.9 lib/devise/hooks/rememberable.rb
devise_ennder-1.3.1.0.9 lib/devise/hooks/rememberable.rb
devise_ennder-1.3.1.0.9 test/rails_app/vendor/plugins/devise/lib/devise/hooks/rememberable.rb
devise_ennder-1.2.1.0.9 lib/devise/hooks/rememberable.rb
devise_ennder-1.2.1.0.9 test/rails_app/vendor/plugins/devise/lib/devise/hooks/rememberable.rb
devise_ennder-1.1.1.0.9 test/rails_app/vendor/plugins/devise/lib/devise/hooks/rememberable.rb
devise_ennder-1.1.1.0.9 lib/devise/hooks/rememberable.rb
devise_ennder-1.0.1.0.9 lib/devise/hooks/rememberable.rb
devise_ennder-1.0.1.0.9 test/rails_app/vendor/plugins/devise/lib/devise/hooks/rememberable.rb