module HackerTracker

Public Class Methods

hacker?(ip_address) click to toggle source
# File lib/devise_hacker_tracker/models/hacker_tracker.rb, line 5
def self.hacker?(ip_address)
  SignInFailure.clear_outdated!

  failures = SignInFailure.recent.where(ip_address: ip_address)
  too_many_attempts?(failures) && too_many_accounts_tried?(failures)
end

Private Class Methods

too_many_accounts_tried?(failures) click to toggle source
# File lib/devise_hacker_tracker/models/hacker_tracker.rb, line 18
def self.too_many_accounts_tried?(failures)
  failures.distinct.count(*Devise.authentication_keys) >= Devise.maximum_accounts_attempted
end
too_many_attempts?(failures) click to toggle source
# File lib/devise_hacker_tracker/models/hacker_tracker.rb, line 14
def self.too_many_attempts?(failures)
  failures.size >= Devise.maximum_attempts_per_ip
end