class Sqreen::Rules::DeviseSignupTrackCB

Public Class Methods

new(*args) click to toggle source
Calls superclass method
# File lib/sqreen/rules/devise_signup_track_cb.rb, line 13
def initialize(*args)
  super(*args)
  @overtimeable = false
end

Public Instance Methods

pre(_instance, args, _budget) click to toggle source
# File lib/sqreen/rules/devise_signup_track_cb.rb, line 18
def pre(_instance, args, _budget)
  data = args[1].attributes
  keys = args[1].class.authentication_keys
  ip = framework.client_ip
  category = 'auto-signup'
  data = data.select { |k, _| keys.include?(k) }

  if data.empty?
    Sqreen.log.debug { "#{category} from #{ip} but keys empty" }
    return
  end

  payload = { keys: data.to_a, ip: ip }

  record_observation(category, JSON.dump(payload), 1)
  advise_action(nil)
end