Commit cf1846b6 authored by Amy Qualls's avatar Amy Qualls Committed by Illya Klymov

Revise text on anti-spam UI page

parent 4fc8d33a
...@@ -2,6 +2,11 @@ ...@@ -2,6 +2,11 @@
= form_errors(@application_setting) = form_errors(@application_setting)
%fieldset %fieldset
%h5
= _('reCAPTCHA')
%p
= _('reCAPTCHA helps prevent credential stuffing.')
= link_to _('Only reCAPTCHA v2 is supported:'), 'https://developers.google.com/recaptcha/docs/versions', target: '_blank', rel: 'noopener noreferrer'
.form-group .form-group
.form-check .form-check
= f.check_box :recaptcha_enabled, class: 'form-check-input' = f.check_box :recaptcha_enabled, class: 'form-check-input'
...@@ -9,25 +14,31 @@ ...@@ -9,25 +14,31 @@
= _("Enable reCAPTCHA") = _("Enable reCAPTCHA")
%span.form-text.text-muted#recaptcha_help_block %span.form-text.text-muted#recaptcha_help_block
= _('Helps prevent bots from creating accounts.') = _('Helps prevent bots from creating accounts.')
= link_to _('How do I configure it?'), help_page_path('integration/recaptcha.md'), target: '_blank', rel: 'noopener noreferrer'
.form-group .form-group
.form-check .form-check
= f.check_box :login_recaptcha_protection_enabled, class: 'form-check-input' = f.check_box :login_recaptcha_protection_enabled, class: 'form-check-input'
= f.label :login_recaptcha_protection_enabled, class: 'form-check-label' do = f.label :login_recaptcha_protection_enabled, class: 'form-check-label' do
= _("Enable reCAPTCHA for login") = _('Enable reCAPTCHA for login.')
%span.form-text.text-muted#recaptcha_help_block %span.form-text.text-muted#recaptcha_help_block
= _('Helps prevent bots from brute-force attacks.') = _('Helps prevent bots from brute-force attacks.')
.form-group .form-group
= f.label :recaptcha_site_key, _('reCAPTCHA Site Key'), class: 'label-bold' = f.label :recaptcha_site_key, _('reCAPTCHA site key'), class: 'label-bold'
= f.text_field :recaptcha_site_key, class: 'form-control gl-form-input' = f.text_field :recaptcha_site_key, class: 'form-control gl-form-input'
.form-text.text-muted .form-text.text-muted
= _("Generate site and private keys at") = _("Generate site and private keys at")
%a{ href: 'http://www.google.com/recaptcha', target: 'blank' } http://www.google.com/recaptcha %a{ href: 'http://www.google.com/recaptcha', target: 'blank' } http://www.google.com/recaptcha
.form-group .form-group
= f.label :recaptcha_private_key, _('reCAPTCHA Private Key'), class: 'label-bold' = f.label :recaptcha_private_key, _('reCAPTCHA private key'), class: 'label-bold'
.form-group
= f.text_field :recaptcha_private_key, class: 'form-control gl-form-input' = f.text_field :recaptcha_private_key, class: 'form-control gl-form-input'
%h5
= _('Invisible Captcha')
%p
= _('Invisible Captcha helps prevent the creation of spam accounts. It adds a honeypot field and time-sensitive form submission to the account signup form.')
= link_to _('Read their documentation.'), 'https://github.com/markets/invisible_captcha', target: '_blank', rel: 'noopener noreferrer'
.form-group .form-group
.form-check .form-check
= f.check_box :invisible_captcha_enabled, class: 'form-check-input' = f.check_box :invisible_captcha_enabled, class: 'form-check-input'
...@@ -36,12 +47,18 @@ ...@@ -36,12 +47,18 @@
%span.form-text.text-muted %span.form-text.text-muted
= _('Helps prevent bots from creating accounts.') = _('Helps prevent bots from creating accounts.')
%h5
= _('Akismet')
%p
= _('Akismet helps prevent the creation of spam issues in public projects.')
= link_to _('How do I configure Akismet?'), help_page_path('integration/akismet.md'), target: '_blank', rel: 'noopener noreferrer'
.form-group .form-group
.form-check .form-check
= f.check_box :akismet_enabled, class: 'form-check-input' = f.check_box :akismet_enabled, class: 'form-check-input'
= f.label :akismet_enabled, class: 'form-check-label' do = f.label :akismet_enabled, class: 'form-check-label' do
Enable Akismet Enable Akismet
%span.form-text.text-muted#akismet_help_block= _("Helps prevent bots from creating issues") %span.form-text.text-muted#akismet_help_block= _("Helps prevent bots from creating issues.")
.form-group .form-group
= f.label :akismet_api_key, _('Akismet API Key'), class: 'label-bold' = f.label :akismet_api_key, _('Akismet API Key'), class: 'label-bold'
...@@ -50,25 +67,31 @@ ...@@ -50,25 +67,31 @@
Generate API key at Generate API key at
%a{ href: 'http://www.akismet.com', target: 'blank' } http://www.akismet.com %a{ href: 'http://www.akismet.com', target: 'blank' } http://www.akismet.com
%h5
= _('IP address restrictions')
.form-group .form-group
.form-check .form-check
= f.check_box :unique_ips_limit_enabled, class: 'form-check-input' = f.check_box :unique_ips_limit_enabled, class: 'form-check-input'
= f.label :unique_ips_limit_enabled, class: 'form-check-label' do = f.label :unique_ips_limit_enabled, class: 'form-check-label' do
= _("Limit sign in from multiple ips") = _("Limit sign in from multiple IP addresses")
%span.form-text.text-muted#unique_ip_help_block %span.form-text.text-muted#unique_ip_help_block
= _("Helps prevent malicious users hide their activity") = _("Helps prevent malicious users hide their activity.")
.form-group .form-group
= f.label :unique_ips_limit_per_user, _('IPs per user'), class: 'label-bold' = f.label :unique_ips_limit_per_user, _('IP addresses per user'), class: 'label-bold'
= f.number_field :unique_ips_limit_per_user, class: 'form-control gl-form-input' = f.number_field :unique_ips_limit_per_user, class: 'form-control gl-form-input'
.form-text.text-muted .form-text.text-muted
= _("Maximum number of unique IPs per user") = _("Maximum number of unique IP addresses per user.")
.form-group .form-group
= f.label :unique_ips_limit_time_window, _('IP expiration time'), class: 'label-bold' = f.label :unique_ips_limit_time_window, _('IP address expiration time'), class: 'label-bold'
= f.number_field :unique_ips_limit_time_window, class: 'form-control gl-form-input' = f.number_field :unique_ips_limit_time_window, class: 'form-control gl-form-input'
.form-text.text-muted .form-text.text-muted
= _("How many seconds an IP will be counted towards the limit") = _("How many seconds an IP counts toward the IP address limit.")
%h5
= _('Spam Check')
.form-group .form-group
.form-check .form-check
...@@ -79,8 +102,8 @@ ...@@ -79,8 +102,8 @@
= f.label :spam_check_endpoint_url, _('URL of the external Spam Check endpoint'), class: 'label-bold' = f.label :spam_check_endpoint_url, _('URL of the external Spam Check endpoint'), class: 'label-bold'
= f.text_field :spam_check_endpoint_url, class: 'form-control gl-form-input' = f.text_field :spam_check_endpoint_url, class: 'form-control gl-form-input'
.form-group .form-group
= f.label :spam_check_api_key, _('Spam Check API Key'), class: 'gl-font-weight-bold' = f.label :spam_check_api_key, _('Spam Check API key'), class: 'gl-font-weight-bold'
= f.text_field :spam_check_api_key, class: 'form-control gl-form-input' = f.text_field :spam_check_api_key, class: 'form-control gl-form-input'
.form-text.text-muted= _('The API key used by GitLab for accessing the Spam Check service endpoint') .form-text.text-muted= _('The API key used by GitLab for accessing the Spam Check service endpoint.')
= f.submit _('Save changes'), class: "gl-button btn btn-confirm" = f.submit _('Save changes'), class: "gl-button btn btn-confirm"
...@@ -9,9 +9,7 @@ ...@@ -9,9 +9,7 @@
%button.btn.gl-button.btn-default.js-settings-toggle{ type: 'button' } %button.btn.gl-button.btn-default.js-settings-toggle{ type: 'button' }
= expanded_by_default? ? _('Collapse') : _('Expand') = expanded_by_default? ? _('Collapse') : _('Expand')
%p %p
- recaptcha_v2_link_url = 'https://developers.google.com/recaptcha/docs/versions' = _('Configure CAPTCHAs, IP address limits, and other anti-spam measures.')
- recaptcha_v2_link_start = '<a href="%{url}" target="_blank" rel="noopener noreferrer">'.html_safe % { url: recaptcha_v2_link_url }
= _('Enable reCAPTCHA, Invisible Captcha, Akismet and set IP limits. For reCAPTCHA, we currently only support %{recaptcha_v2_link_start}v2%{recaptcha_v2_link_end}').html_safe % { recaptcha_v2_link_start: recaptcha_v2_link_start, recaptcha_v2_link_end: '</a>'.html_safe }
.settings-content .settings-content
= render 'spam' = render 'spam'
......
...@@ -2915,9 +2915,15 @@ msgstr "" ...@@ -2915,9 +2915,15 @@ msgstr ""
msgid "After you've reviewed these contribution guidelines, you'll be all set to" msgid "After you've reviewed these contribution guidelines, you'll be all set to"
msgstr "" msgstr ""
msgid "Akismet"
msgstr ""
msgid "Akismet API Key" msgid "Akismet API Key"
msgstr "" msgstr ""
msgid "Akismet helps prevent the creation of spam issues in public projects."
msgstr ""
msgid "AlertManagement|Acknowledged" msgid "AlertManagement|Acknowledged"
msgstr "" msgstr ""
...@@ -8533,6 +8539,9 @@ msgstr "" ...@@ -8533,6 +8539,9 @@ msgstr ""
msgid "Configure %{repository_checks_link_start}repository checks%{link_end} and %{housekeeping_link_start}housekeeping%{link_end} on repositories." msgid "Configure %{repository_checks_link_start}repository checks%{link_end} and %{housekeeping_link_start}housekeeping%{link_end} on repositories."
msgstr "" msgstr ""
msgid "Configure CAPTCHAs, IP address limits, and other anti-spam measures."
msgstr ""
msgid "Configure Dependency Scanning in `.gitlab-ci.yml` using the GitLab managed template. You can [add variable overrides](https://docs.gitlab.com/ee/user/application_security/dependency_scanning/#customizing-the-dependency-scanning-settings) to customize Dependency Scanning settings." msgid "Configure Dependency Scanning in `.gitlab-ci.yml` using the GitLab managed template. You can [add variable overrides](https://docs.gitlab.com/ee/user/application_security/dependency_scanning/#customizing-the-dependency-scanning-settings) to customize Dependency Scanning settings."
msgstr "" msgstr ""
...@@ -12629,10 +12638,7 @@ msgstr "" ...@@ -12629,10 +12638,7 @@ msgstr ""
msgid "Enable reCAPTCHA" msgid "Enable reCAPTCHA"
msgstr "" msgstr ""
msgid "Enable reCAPTCHA for login" msgid "Enable reCAPTCHA for login."
msgstr ""
msgid "Enable reCAPTCHA, Invisible Captcha, Akismet and set IP limits. For reCAPTCHA, we currently only support %{recaptcha_v2_link_start}v2%{recaptcha_v2_link_end}"
msgstr "" msgstr ""
msgid "Enable repository checks" msgid "Enable repository checks"
...@@ -16706,10 +16712,10 @@ msgstr "" ...@@ -16706,10 +16712,10 @@ msgstr ""
msgid "Helps prevent bots from creating accounts." msgid "Helps prevent bots from creating accounts."
msgstr "" msgstr ""
msgid "Helps prevent bots from creating issues" msgid "Helps prevent bots from creating issues."
msgstr "" msgstr ""
msgid "Helps prevent malicious users hide their activity" msgid "Helps prevent malicious users hide their activity."
msgstr "" msgstr ""
msgid "Helps reduce request volume (for example, from crawlers or abusive bots)" msgid "Helps reduce request volume (for example, from crawlers or abusive bots)"
...@@ -16833,6 +16839,12 @@ msgstr "" ...@@ -16833,6 +16839,12 @@ msgstr ""
msgid "Housekeeping, export, path, transfer, remove, archive." msgid "Housekeeping, export, path, transfer, remove, archive."
msgstr "" msgstr ""
msgid "How do I configure Akismet?"
msgstr ""
msgid "How do I configure it?"
msgstr ""
msgid "How do I configure runners?" msgid "How do I configure runners?"
msgstr "" msgstr ""
...@@ -16866,7 +16878,7 @@ msgstr "" ...@@ -16866,7 +16878,7 @@ msgstr ""
msgid "How many days need to pass between marking entity for deletion and actual removing it." msgid "How many days need to pass between marking entity for deletion and actual removing it."
msgstr "" msgstr ""
msgid "How many seconds an IP will be counted towards the limit" msgid "How many seconds an IP counts toward the IP address limit."
msgstr "" msgstr ""
msgid "How the job limiter handles jobs exceeding the thresholds specified below. The 'track' mode only logs the jobs. The 'compress' mode compresses the jobs and raises an exception if the compressed size exceeds the limit." msgid "How the job limiter handles jobs exceeding the thresholds specified below. The 'track' mode only logs the jobs. The 'compress' mode compresses the jobs and raises an exception if the compressed size exceeds the limit."
...@@ -16956,13 +16968,16 @@ msgstr "" ...@@ -16956,13 +16968,16 @@ msgstr ""
msgid "IP Address" msgid "IP Address"
msgstr "" msgstr ""
msgid "IP expiration time" msgid "IP address expiration time"
msgstr "" msgstr ""
msgid "IP subnet restriction only allowed for top-level groups" msgid "IP address restrictions"
msgstr ""
msgid "IP addresses per user"
msgstr "" msgstr ""
msgid "IPs per user" msgid "IP subnet restriction only allowed for top-level groups"
msgstr "" msgstr ""
msgid "Identifier" msgid "Identifier"
...@@ -18455,6 +18470,12 @@ msgstr "" ...@@ -18455,6 +18470,12 @@ msgstr ""
msgid "Investigate vulnerability: %{title}" msgid "Investigate vulnerability: %{title}"
msgstr "" msgstr ""
msgid "Invisible Captcha"
msgstr ""
msgid "Invisible Captcha helps prevent the creation of spam accounts. It adds a honeypot field and time-sensitive form submission to the account signup form."
msgstr ""
msgid "Invitation" msgid "Invitation"
msgstr "" msgstr ""
...@@ -20314,7 +20335,7 @@ msgstr "" ...@@ -20314,7 +20335,7 @@ msgstr ""
msgid "Limit namespaces and projects that can be indexed" msgid "Limit namespaces and projects that can be indexed"
msgstr "" msgstr ""
msgid "Limit sign in from multiple ips" msgid "Limit sign in from multiple IP addresses"
msgstr "" msgstr ""
msgid "Limit the number of concurrent operations this secondary site can run in the background." msgid "Limit the number of concurrent operations this secondary site can run in the background."
...@@ -20958,7 +20979,7 @@ msgstr "" ...@@ -20958,7 +20979,7 @@ msgstr ""
msgid "Maximum number of projects." msgid "Maximum number of projects."
msgstr "" msgstr ""
msgid "Maximum number of unique IPs per user" msgid "Maximum number of unique IP addresses per user."
msgstr "" msgstr ""
msgid "Maximum page reached" msgid "Maximum page reached"
...@@ -23738,6 +23759,9 @@ msgstr "" ...@@ -23738,6 +23759,9 @@ msgstr ""
msgid "Only projects created under a Ultimate license are available in Security Dashboards." msgid "Only projects created under a Ultimate license are available in Security Dashboards."
msgstr "" msgstr ""
msgid "Only reCAPTCHA v2 is supported:"
msgstr ""
msgid "Only verified users with an email address in any of these domains can be added to the group." msgid "Only verified users with an email address in any of these domains can be added to the group."
msgstr "" msgstr ""
...@@ -27782,6 +27806,9 @@ msgstr "" ...@@ -27782,6 +27806,9 @@ msgstr ""
msgid "Read more about related issues" msgid "Read more about related issues"
msgstr "" msgstr ""
msgid "Read their documentation."
msgstr ""
msgid "Ready to get started with GitLab? Follow these steps to set up your workspace, plan and commit changes, and deploy your project." msgid "Ready to get started with GitLab? Follow these steps to set up your workspace, plan and commit changes, and deploy your project."
msgstr "" msgstr ""
...@@ -31965,7 +31992,10 @@ msgstr "" ...@@ -31965,7 +31992,10 @@ msgstr ""
msgid "SourcegraphPreferences|Uses a custom %{linkStart}Sourcegraph instance%{linkEnd}." msgid "SourcegraphPreferences|Uses a custom %{linkStart}Sourcegraph instance%{linkEnd}."
msgstr "" msgstr ""
msgid "Spam Check API Key" msgid "Spam Check"
msgstr ""
msgid "Spam Check API key"
msgstr "" msgstr ""
msgid "Spam Logs" msgid "Spam Logs"
...@@ -33508,7 +33538,7 @@ msgid_plural "The %{type} contains the following errors:" ...@@ -33508,7 +33538,7 @@ msgid_plural "The %{type} contains the following errors:"
msgstr[0] "" msgstr[0] ""
msgstr[1] "" msgstr[1] ""
msgid "The API key used by GitLab for accessing the Spam Check service endpoint" msgid "The API key used by GitLab for accessing the Spam Check service endpoint."
msgstr "" msgstr ""
msgid "The GitLab subscription service (customers.gitlab.com) is currently experiencing an outage. You can monitor the status and get updates at %{linkStart}status.gitlab.com%{linkEnd}." msgid "The GitLab subscription service (customers.gitlab.com) is currently experiencing an outage. You can monitor the status and get updates at %{linkStart}status.gitlab.com%{linkEnd}."
...@@ -40764,10 +40794,16 @@ msgstr "" ...@@ -40764,10 +40794,16 @@ msgstr ""
msgid "quick actions" msgid "quick actions"
msgstr "" msgstr ""
msgid "reCAPTCHA Private Key" msgid "reCAPTCHA"
msgstr ""
msgid "reCAPTCHA helps prevent credential stuffing."
msgstr ""
msgid "reCAPTCHA private key"
msgstr "" msgstr ""
msgid "reCAPTCHA Site Key" msgid "reCAPTCHA site key"
msgstr "" msgstr ""
msgid "recent activity" msgid "recent activity"
......
...@@ -450,14 +450,14 @@ RSpec.describe 'Admin updates settings' do ...@@ -450,14 +450,14 @@ RSpec.describe 'Admin updates settings' do
visit reporting_admin_application_settings_path visit reporting_admin_application_settings_path
page.within('.as-spam') do page.within('.as-spam') do
fill_in 'reCAPTCHA Site Key', with: 'key' fill_in 'reCAPTCHA site key', with: 'key'
fill_in 'reCAPTCHA Private Key', with: 'key' fill_in 'reCAPTCHA private key', with: 'key'
check 'Enable reCAPTCHA' check 'Enable reCAPTCHA'
check 'Enable reCAPTCHA for login' check 'Enable reCAPTCHA for login'
fill_in 'IPs per user', with: 15 fill_in 'IP addresses per user', with: 15
check 'Enable Spam Check via external API endpoint' check 'Enable Spam Check via external API endpoint'
fill_in 'URL of the external Spam Check endpoint', with: 'grpc://www.example.com/spamcheck' fill_in 'URL of the external Spam Check endpoint', with: 'grpc://www.example.com/spamcheck'
fill_in 'Spam Check API Key', with: 'SPAM_CHECK_API_KEY' fill_in 'Spam Check API key', with: 'SPAM_CHECK_API_KEY'
click_button 'Save changes' click_button 'Save changes'
end end
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment