Module: Devision::Lockable

Extended by:
ActiveSupport::Concern
Defined in:
lib/devision/models/lockable.rb

Defined Under Namespace

Modules: ClassMethods

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.required_fields(klass) ⇒ Object



7
8
9
10
11
12
13
# File 'lib/devision/models/lockable.rb', line 7

def self.required_fields(klass)
  attributes = []
  attributes << :failed_attempts if klass.lock_strategy_enabled?(:failed_attempts)
  attributes << :locked_at if klass.unlock_strategy_enabled?(:time)
  attributes << :unlock_token if klass.unlock_strategy_enabled?(:email)
  attributes
end

Instance Method Details

#access_locked?Boolean

Returns:

  • (Boolean)


27
28
29
# File 'lib/devision/models/lockable.rb', line 27

def access_locked?
  !!locked_at && !lock_expired?
end

#lock_access!Object



15
16
17
18
# File 'lib/devision/models/lockable.rb', line 15

def lock_access!
  self.locked_at = Time.now.utc
  save(validate: false)
end

#unlock_access!Object



20
21
22
23
24
25
# File 'lib/devision/models/lockable.rb', line 20

def unlock_access!
  self.locked_at = nil
  self.failed_attempts = 0 if respond_to?(:failed_attempts=)
  self.unlock_token = nil if respond_to?(:unlock_token=)
  save(validate: false)
end