mirror of
https://github.com/heartcombo/devise.git
synced 2022-11-09 12:18:31 -05:00
Bring Devise::ALL back to modules and improving lockable docs.
This commit is contained in:
parent
21359fb433
commit
658059f31a
4 changed files with 22 additions and 8 deletions
|
@ -59,7 +59,7 @@ module Devise
|
||||||
raise "You need to give at least one Devise module" if modules.empty?
|
raise "You need to give at least one Devise module" if modules.empty?
|
||||||
options = modules.extract_options!
|
options = modules.extract_options!
|
||||||
|
|
||||||
@devise_modules = modules.map(&:to_sym).uniq
|
@devise_modules = Devise::ALL & modules.map(&:to_sym).uniq
|
||||||
|
|
||||||
Devise.orm_class.included_modules_hook(self) do
|
Devise.orm_class.included_modules_hook(self) do
|
||||||
devise_modules.each do |m|
|
devise_modules.each do |m|
|
||||||
|
|
|
@ -3,6 +3,20 @@ require 'devise/models/activatable'
|
||||||
module Devise
|
module Devise
|
||||||
module Models
|
module Models
|
||||||
|
|
||||||
|
# Handles blocking a user access after a certain number of attempts.
|
||||||
|
# Lockable accepts two different strategies to unlock a user after it's
|
||||||
|
# blocked: email and time. The former will send an email to the user when
|
||||||
|
# the lock happens, containing a link to unlock it's account. The second
|
||||||
|
# will unlock the user automatically after some configured time (ie 2.hours).
|
||||||
|
# It's also possible to setup lockable to use both email and time strategies.
|
||||||
|
#
|
||||||
|
# Configuration:
|
||||||
|
#
|
||||||
|
# maximum_attempts: how many attempts should be accepted before blocking the user.
|
||||||
|
# unlock_strategy: unlock the user account by :time, :email or :both.
|
||||||
|
# unlock_in: the time you want to lock the user after to lock happens. Only
|
||||||
|
# available when unlock_strategy is :time or :both.
|
||||||
|
#
|
||||||
module Lockable
|
module Lockable
|
||||||
include Devise::Models::Activatable
|
include Devise::Models::Activatable
|
||||||
|
|
||||||
|
@ -21,13 +35,13 @@ module Devise
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
# calls lock and save the model
|
# Lock an user also saving the record.
|
||||||
def lock!
|
def lock!
|
||||||
lock
|
lock
|
||||||
save(false)
|
save(false)
|
||||||
end
|
end
|
||||||
|
|
||||||
# Unlock an user by cleaning locket_at and failed_attempts
|
# Unlock an user by cleaning locket_at and failed_attempts.
|
||||||
def unlock!
|
def unlock!
|
||||||
if_locked do
|
if_locked do
|
||||||
self.locked_at = nil
|
self.locked_at = nil
|
||||||
|
@ -37,7 +51,7 @@ module Devise
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
# Verifies whether a user is locked or not
|
# Verifies whether a user is locked or not.
|
||||||
def locked?
|
def locked?
|
||||||
locked_at && !lock_expired?
|
locked_at && !lock_expired?
|
||||||
end
|
end
|
||||||
|
@ -47,7 +61,7 @@ module Devise
|
||||||
::DeviseMailer.deliver_unlock_instructions(self)
|
::DeviseMailer.deliver_unlock_instructions(self)
|
||||||
end
|
end
|
||||||
|
|
||||||
# Resend the unlock instructions if the user is locked
|
# Resend the unlock instructions if the user is locked.
|
||||||
def resend_unlock!
|
def resend_unlock!
|
||||||
if_locked do
|
if_locked do
|
||||||
generate_unlock_token unless unlock_token.present?
|
generate_unlock_token unless unlock_token.present?
|
||||||
|
@ -113,7 +127,7 @@ module Devise
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
# Is the unlock enabled for the given unlock option?
|
# Is the unlock enabled for the given unlock strategy?
|
||||||
def unlock_strategy_enabled?(strategy)
|
def unlock_strategy_enabled?(strategy)
|
||||||
[:both, strategy].include?(self.class.unlock_strategy)
|
[:both, strategy].include?(self.class.unlock_strategy)
|
||||||
end
|
end
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
module Devise
|
module Devise
|
||||||
module Models
|
module Models
|
||||||
# Registerable is responsible for everything related to registering a new
|
# Registerable is responsible for everything related to registering a new
|
||||||
# resource (ie account or sign up).
|
# resource (ie user sign up).
|
||||||
module Registerable
|
module Registerable
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -9,7 +9,7 @@ module Devise
|
||||||
#
|
#
|
||||||
# Configuration:
|
# Configuration:
|
||||||
#
|
#
|
||||||
# timeout: the time you want to timeout the user session without activity.
|
# timeout_in: the time you want to timeout the user session without activity.
|
||||||
module Timeoutable
|
module Timeoutable
|
||||||
def self.included(base)
|
def self.included(base)
|
||||||
base.extend ClassMethods
|
base.extend ClassMethods
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue