module Devise::Models::Lockable::ClassMethods

def lock_strategy_enabled?(strategy)

Is the lock enabled for the given lock strategy?
def lock_strategy_enabled?(strategy)
  self.lock_strategy == strategy
end

def send_unlock_instructions(attributes={})

Options must contain the user email
with an email not found error.
unlock instructions to it. If not user is found, returns a new user
Attempt to find a user by its email. If a record is found, send new
def send_unlock_instructions(attributes={})
  lockable = find_or_initialize_with_errors(unlock_keys, attributes, :not_found)
  lockable.resend_unlock_token if lockable.persisted?
  lockable
end

def unlock_access_by_token(unlock_token)

Options must have the unlock_token
If the user is not locked, creates an error for the user
If no user is found, returns a new user with an error.
Find a user by its unlock token and try to unlock it.
def unlock_access_by_token(unlock_token)
  lockable = find_or_initialize_with_error_by(:unlock_token, unlock_token)
  lockable.unlock_access! if lockable.persisted?
  lockable
end

def unlock_strategy_enabled?(strategy)

Is the unlock enabled for the given unlock strategy?
def unlock_strategy_enabled?(strategy)
  [:both, strategy].include?(self.unlock_strategy)
end

def unlock_token

def unlock_token
  Devise.friendly_token
end