Module: InvisibleCaptchaOnSignup

Extended by:
ActiveSupport::Concern
Included in:
RegistrationsController
Defined in:
app/controllers/concerns/invisible_captcha_on_signup.rb

Instance Method Summary collapse

Instance Method Details

#invisible_captcha_honeypot_counterObject



28
29
30
31
32
33
# File 'app/controllers/concerns/invisible_captcha_on_signup.rb', line 28

def invisible_captcha_honeypot_counter
  @invisible_captcha_honeypot_counter ||= Gitlab::Metrics.counter(
    :bot_blocked_by_invisible_captcha_honeypot,
    'Counter of blocked sign up attempts with filled honeypot'
  )
end

#invisible_captcha_timestamp_counterObject



35
36
37
38
39
40
# File 'app/controllers/concerns/invisible_captcha_on_signup.rb', line 35

def invisible_captcha_timestamp_counter
  @invisible_captcha_timestamp_counter ||= Gitlab::Metrics.counter(
    :bot_blocked_by_invisible_captcha_timestamp,
    'Counter of blocked sign up attempts with invalid timestamp'
  )
end

#log_request(message) ⇒ Object



42
43
44
45
46
47
48
49
50
51
52
# File 'app/controllers/concerns/invisible_captcha_on_signup.rb', line 42

def log_request(message)
  request_information = {
    message: message,
    env: :invisible_captcha_signup_bot_detected,
    remote_ip: request.ip,
    request_method: request.request_method,
    path: request.fullpath
  }

  Gitlab::AuthLogger.error(request_information)
end

#on_honeypot_spam_callbackObject



10
11
12
13
14
15
16
17
# File 'app/controllers/concerns/invisible_captcha_on_signup.rb', line 10

def on_honeypot_spam_callback
  return unless Gitlab::CurrentSettings.invisible_captcha_enabled

  invisible_captcha_honeypot_counter.increment
  log_request('Invisible_Captcha_Honeypot_Request')

  head(:ok)
end

#on_timestamp_spam_callbackObject



19
20
21
22
23
24
25
26
# File 'app/controllers/concerns/invisible_captcha_on_signup.rb', line 19

def on_timestamp_spam_callback
  return unless Gitlab::CurrentSettings.invisible_captcha_enabled

  invisible_captcha_timestamp_counter.increment
  log_request('Invisible_Captcha_Timestamp_Request')

  redirect_to new_user_session_path, alert: InvisibleCaptcha.timestamp_error_message
end