Module: Devise::Models::Timeoutable

Extended by:
ActiveSupport::Concern
Defined in:
lib/devise/models/timeoutable.rb

Overview

Timeoutable takes care of verifying whether a user session has already expired or not. When a session expires after the configured time, the user will be asked for credentials again, it means, they will be redirected to the sign in page.

Options

Timeoutable adds the following options to devise_for:

* +timeout_in+: the interval to timeout the user session without activity.

Examples

user.timedout?(30.minutes.ago)

Defined Under Namespace

Modules: ClassMethods

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.required_fields(klass) ⇒ Object



23
24
25
# File 'lib/devise/models/timeoutable.rb', line 23

def self.required_fields(klass)
  []
end

Instance Method Details

#timedout?(last_access) ⇒ Boolean

Checks whether the user session has expired based on configured time.

Returns:

  • (Boolean)


28
29
30
31
# File 'lib/devise/models/timeoutable.rb', line 28

def timedout?(last_access)
  return false if remember_exists_and_not_expired?
  !timeout_in.nil? && last_access && last_access <= timeout_in.ago
end

#timeout_inObject



33
34
35
# File 'lib/devise/models/timeoutable.rb', line 33

def timeout_in
  self.class.timeout_in
end