Class: Trackguard::Visitor

Inherits:
ApplicationRecord
  • Object
show all
Defined in:
app/models/trackguard/visitor.rb

Constant Summary collapse

FLAGGED_BY =
[ "User", "claw:auto", "Recurring Job", "Internal Automation", "External Automation" ].freeze
SUSPICIOUS_STATES =
%w[normal suspicious blocked].freeze
CACHE_KEY =
"trackguard/flagged_ips".freeze

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.flagged?(ip) ⇒ Boolean

Returns:

  • (Boolean)


25
26
27
28
29
30
31
# File 'app/models/trackguard/visitor.rb', line 25

def self.flagged?(ip)
  flagged_ips = Rails.cache.fetch(CACHE_KEY, expires_in: 5.minutes) do
    flagged.pluck(:ip)
  end

  flagged_ips.include?(ip)
end

Instance Method Details

#blocked?Boolean

Returns:

  • (Boolean)


23
# File 'app/models/trackguard/visitor.rb', line 23

def blocked?    = suspicious_state == "blocked"

#normal?Boolean

Returns:

  • (Boolean)


21
# File 'app/models/trackguard/visitor.rb', line 21

def normal?     = suspicious_state == "normal"

#suspicious?Boolean

Returns:

  • (Boolean)


22
# File 'app/models/trackguard/visitor.rb', line 22

def suspicious? = suspicious_state == "suspicious"