Module: Devise::Models::Autosigninable
- Defined in:
- lib/devise_autosigninable/model.rb
Defined Under Namespace
Modules: ClassMethods
Class Method Summary collapse
-
.included(base) ⇒ Object
include Devise::Models::Lockable.
Instance Method Summary collapse
- #autosigninable? ⇒ Boolean
- #autosigninable_ready? ⇒ Boolean
-
#ensure_autosignin_token ⇒ Object
Generate autosignin token unless already exists.
-
#ensure_autosignin_token! ⇒ Object
Generate autosignin token unless already exists and save the record.
-
#reset_autosignin_token ⇒ Object
Generate new autosignin token.
-
#reset_autosignin_token! ⇒ Object
Generate new autosignin token and save the record.
-
#valid_autosignin_token?(incoming_autosignin_token) ⇒ Boolean
Verifies whether an +incoming_autosignin_token is the user authentication token.
-
#valid_for_autosignin_token_authentication?(attributes) ⇒ Boolean
Checks if a resource is valid upon authentication.
Class Method Details
.included(base) ⇒ Object
include Devise::Models::Lockable
6 7 8 9 10 11 12 13 14 15 16 |
# File 'lib/devise_autosigninable/model.rb', line 6 def self.included(base) base.extend ClassMethods base.class_eval do before_create :reset_autosignin_token # indicator to expire autosignin token mattr_accessor :autosignin_expire @@autosignin_expire = false end end |
Instance Method Details
#autosigninable? ⇒ Boolean
18 19 20 |
# File 'lib/devise_autosigninable/model.rb', line 18 def autosigninable? true end |
#autosigninable_ready? ⇒ Boolean
22 23 24 |
# File 'lib/devise_autosigninable/model.rb', line 22 def autosigninable_ready? !self.autosignin_token.blank? end |
#ensure_autosignin_token ⇒ Object
Generate autosignin token unless already exists.
38 39 40 |
# File 'lib/devise_autosigninable/model.rb', line 38 def ensure_autosignin_token self.reset_autosignin_token unless self.autosigninable_ready? end |
#ensure_autosignin_token! ⇒ Object
Generate autosignin token unless already exists and save the record.
43 44 45 |
# File 'lib/devise_autosigninable/model.rb', line 43 def ensure_autosignin_token! self.reset_autosignin_token! unless self.autosigninable_ready? end |
#reset_autosignin_token ⇒ Object
Generate new autosignin token
27 28 29 |
# File 'lib/devise_autosigninable/model.rb', line 27 def reset_autosignin_token self.autosignin_token = self.autosigninable? ? self.class.autosignin_token : nil end |
#reset_autosignin_token! ⇒ Object
Generate new autosignin token and save the record.
32 33 34 35 |
# File 'lib/devise_autosigninable/model.rb', line 32 def reset_autosignin_token! reset_autosignin_token self.save end |
#valid_autosignin_token?(incoming_autosignin_token) ⇒ Boolean
Verifies whether an +incoming_autosignin_token is the user authentication token.
49 50 51 |
# File 'lib/devise_autosigninable/model.rb', line 49 def valid_autosignin_token?(incoming_autosignin_token) incoming_autosignin_token == self.autosignin_token end |
#valid_for_autosignin_token_authentication?(attributes) ⇒ Boolean
Checks if a resource is valid upon authentication. for verifying whether an user is allowed to sign in or not. If the user is locked, it should never be allowed.
56 57 58 59 60 61 62 63 64 65 66 67 68 |
# File 'lib/devise_autosigninable/model.rb', line 56 def valid_for_autosignin_token_authentication?(attributes) if (result = valid_autosignin_token?(attributes[:autosignin_token])) && self.class.devise_modules.include?(:lockable) self.failed_attempts = 0 if self.class.devise_modules.include?(:lockable) else if self.class.devise_modules.include?(:lockable) self.failed_attempts += 1 lock_access! if failed_attempts > self.class.maximum_attempts end end reset_autosignin_token! if self.class.autosignin_expire save(:validate => false) if changed? result end |