Module: Devise::Models::SuspiciousLogin
- Extended by:
- ActiveSupport::Concern
- Defined in:
- lib/suspicious_login/model.rb
Class Method Summary collapse
Instance Method Summary collapse
- #after_login_token_authentication ⇒ Object
- #clear_suspicious_login_token! ⇒ Object
- #dormant_account?(request) ⇒ Boolean
- #generate_login_token ⇒ Object
- #generate_reset_password_token ⇒ Object
- #generate_reset_password_token! ⇒ Object
- #reset_suspicious_login_token(token = nil) ⇒ Object
- #reset_suspicious_login_token!(token = nil) ⇒ Object
- #send_suspicious_login_instructions(request = {}) ⇒ Object
- #suspicious?(request = {}) ⇒ Boolean
- #token_login? ⇒ Boolean
Class Method Details
Instance Method Details
#after_login_token_authentication ⇒ Object
51 52 53 54 |
# File 'lib/suspicious_login/model.rb', line 51 def after_login_token_authentication clear_suspicious_login_token! if Devise.clear_token_on_login @token_login = true end |
#clear_suspicious_login_token! ⇒ Object
45 46 47 48 49 |
# File 'lib/suspicious_login/model.rb', line 45 def clear_suspicious_login_token! self[Devise.token_field_name] = nil self[Devise.token_created_at_field_name] = nil save(validate: false) end |
#dormant_account?(request) ⇒ Boolean
68 69 70 71 72 73 74 75 76 |
# File 'lib/suspicious_login/model.rb', line 68 def dormant_account?(request) return true if !(respond_to?(:last_sign_in_at)) !last_sign_in_at.nil? && !current_sign_in_ip.nil? && request.remote_ip != last_sign_in_ip && request.remote_ip != current_sign_in_ip && Time.now.utc - current_sign_in_at > Devise.dormant_sign_in_after end |
#generate_login_token ⇒ Object
12 13 14 15 16 17 |
# File 'lib/suspicious_login/model.rb', line 12 def generate_login_token loop do token = Devise.friendly_token break token unless User.where(authentication_token: token).first end end |
#generate_reset_password_token ⇒ Object
19 20 21 22 23 24 |
# File 'lib/suspicious_login/model.rb', line 19 def generate_reset_password_token raw, enc = Devise.token_generator.generate(self.class, :reset_password_token) self.reset_password_token = enc self.reset_password_sent_at = Time.now.utc raw end |
#generate_reset_password_token! ⇒ Object
33 34 35 36 37 |
# File 'lib/suspicious_login/model.rb', line 33 def generate_reset_password_token! token = generate_reset_password_token save(validate: false) token end |
#reset_suspicious_login_token(token = nil) ⇒ Object
26 27 28 29 30 31 |
# File 'lib/suspicious_login/model.rb', line 26 def reset_suspicious_login_token(token=nil) token = token || generate_login_token self[Devise.token_field_name] = token self[Devise.token_created_at_field_name] = Time.now.utc unless Devise.expire_login_token_after.blank? token end |
#reset_suspicious_login_token!(token = nil) ⇒ Object
39 40 41 42 43 |
# File 'lib/suspicious_login/model.rb', line 39 def reset_suspicious_login_token!(token=nil) token = reset_suspicious_login_token(token) save(validate: false) token end |
#send_suspicious_login_instructions(request = {}) ⇒ Object
60 61 62 |
# File 'lib/suspicious_login/model.rb', line 60 def send_suspicious_login_instructions(request = {}) send_devise_notification(:suspicious_login_instructions, nil, {}) end |
#suspicious?(request = {}) ⇒ Boolean
56 57 58 |
# File 'lib/suspicious_login/model.rb', line 56 def suspicious?(request = {}) respond_to?(:suspicious_login_attempt?) ? suspicious_login_attempt?(request) || dormant_account?(request) : dormant_account?(request) end |
#token_login? ⇒ Boolean
64 65 66 |
# File 'lib/suspicious_login/model.rb', line 64 def token_login? @token_login || false end |