Module: Devise::Models::Deactivatable

Extended by:
ActiveSupport::Concern
Defined in:
lib/devise_deactivatable/model.rb

Defined Under Namespace

Modules: ClassMethods

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.required_fields(klass) ⇒ Object



10
11
12
# File 'lib/devise_deactivatable/model.rb', line 10

def self.required_fields(klass)
  [:deactivated_at]
end

Instance Method Details

#active_for_authentication?Boolean

Overwrites active_for_authentication? from Devise::Models::Activatable for deactivate purposes by verifying whether a user is active to sign in or not based on deactivated?

Returns:

  • (Boolean)


16
17
18
# File 'lib/devise_deactivatable/model.rb', line 16

def active_for_authentication?
  !deactivated? && super
end

#deactivate!Object



20
21
22
23
24
25
26
# File 'lib/devise_deactivatable/model.rb', line 20

def deactivate!
  self.deactivated_at = Time.now
  save(validate: false) or raise "Devise deactivatable could not save #{inspect}." \
    "Please make sure a model using deactivatable can be saved when deactivating."

  after_deactivate
end

#deactivated?Boolean

Returns:

  • (Boolean)


28
29
30
# File 'lib/devise_deactivatable/model.rb', line 28

def deactivated?
  !!deactivated_at
end

#inactive_messageObject

Overwrites invalid_message from Devise::Models::Authenticatable to define the correct reason for blocking the sign in.



34
35
36
# File 'lib/devise_deactivatable/model.rb', line 34

def inactive_message
  deactivated? ? :deactivated : super
end