Module: Devise::Models::PasswordExpirable

Extended by:
ActiveSupport::Concern
Defined in:
lib/devise_security_extension/models/password_expirable.rb

Overview

PasswordExpirable takes care of change password after

Defined Under Namespace

Modules: ClassMethods

Instance Method Summary collapse

Instance Method Details

#expire_password_afterObject



43
44
45
# File 'lib/devise_security_extension/models/password_expirable.rb', line 43

def expire_password_after
  self.class.expire_password_after
end

#need_change_passwordObject

set a fake datetime so a password change is needed



32
33
34
35
36
37
38
39
40
41
# File 'lib/devise_security_extension/models/password_expirable.rb', line 32

def need_change_password
  if self.expire_password_after.is_a? Fixnum or self.expire_password_after.is_a? Float
    self.password_changed_at = self.expire_password_after.ago
  end

  # is date not set it will set default to need set new password next login
  need_change_password if self.password_changed_at.nil?

  self.password_changed_at
end

#need_change_password!Object

set a fake datetime so a password change is needed and save the record



24
25
26
27
28
29
# File 'lib/devise_security_extension/models/password_expirable.rb', line 24

def need_change_password!
  if self.expire_password_after.is_a? Fixnum or self.expire_password_after.is_a? Float
    need_change_password
    self.save(:validate => false)
  end
end

#need_change_password?Boolean

is an password change required?

Returns:

  • (Boolean)


15
16
17
18
19
20
21
# File 'lib/devise_security_extension/models/password_expirable.rb', line 15

def need_change_password?
  if self.expire_password_after.is_a? Fixnum or self.expire_password_after.is_a? Float
    self.password_changed_at.nil? or self.password_changed_at < self.expire_password_after.ago
  else
    false
  end
end