Commit eec06336 authored by Jan Provaznik's avatar Jan Provaznik

Merge branch 'revert-f7fa7c1f' into 'master'

Revert "Merge branch 'arkose-labs-captcha-header-guard' into 'master'"

See merge request gitlab-org/gitlab!84177
parents ca6b1825 e3d40d4f
...@@ -39,7 +39,7 @@ class SessionsController < Devise::SessionsController ...@@ -39,7 +39,7 @@ class SessionsController < Devise::SessionsController
after_action :log_failed_login, if: :action_new_and_failed_login? after_action :log_failed_login, if: :action_new_and_failed_login?
after_action :verify_known_sign_in, only: [:create] after_action :verify_known_sign_in, only: [:create]
helper_method :captcha_enabled?, :captcha_on_login_required?, :arkose_labs_enabled? helper_method :captcha_enabled?, :captcha_on_login_required?
# protect_from_forgery is already prepended in ApplicationController but # protect_from_forgery is already prepended in ApplicationController but
# authenticate_with_two_factor which signs in the user is prepended before # authenticate_with_two_factor which signs in the user is prepended before
...@@ -111,10 +111,6 @@ class SessionsController < Devise::SessionsController ...@@ -111,10 +111,6 @@ class SessionsController < Devise::SessionsController
Gitlab::Recaptcha.enabled_on_login? && unverified_anonymous_user? Gitlab::Recaptcha.enabled_on_login? && unverified_anonymous_user?
end end
def arkose_labs_enabled?
false
end
# From https://github.com/plataformatec/devise/wiki/How-To:-Use-Recaptcha-with-Devise#devisepasswordscontroller # From https://github.com/plataformatec/devise/wiki/How-To:-Use-Recaptcha-with-Devise#devisepasswordscontroller
def check_captcha def check_captcha
return unless user_params[:password].present? return unless user_params[:password].present?
......
...@@ -16,7 +16,7 @@ ...@@ -16,7 +16,7 @@
- else - else
= link_to _('Forgot your password?'), new_password_path(:user) = link_to _('Forgot your password?'), new_password_path(:user)
%div %div
- if arkose_labs_enabled? - if Feature.enabled?(:arkose_labs_login_challenge)
= render_if_exists 'devise/sessions/arkose_labs' = render_if_exists 'devise/sessions/arkose_labs'
- elsif captcha_enabled? || captcha_on_login_required? - elsif captcha_enabled? || captcha_on_login_required?
= recaptcha_tags nonce: content_security_policy_nonce = recaptcha_tags nonce: content_security_policy_nonce
......
...@@ -79,11 +79,6 @@ module EE ...@@ -79,11 +79,6 @@ module EE
super super
end end
override :arkose_labs_enabled?
def arkose_labs_enabled?
::Feature.enabled?(:arkose_labs_login_challenge, default_enabled: :yaml) && request.headers[::SessionsController::CAPTCHA_HEADER]
end
override :check_captcha override :check_captcha
def check_captcha def check_captcha
if ::Feature.enabled?(:arkose_labs_login_challenge, default_enabled: :yaml) if ::Feature.enabled?(:arkose_labs_login_challenge, default_enabled: :yaml)
......
...@@ -5,6 +5,10 @@ require 'spec_helper' ...@@ -5,6 +5,10 @@ require 'spec_helper'
RSpec.describe 'ArkoseLabs content security policy' do RSpec.describe 'ArkoseLabs content security policy' do
let(:user) { create(:user) } let(:user) { create(:user) }
before do
stub_feature_flags(arkose_labs_login_challenge: true)
end
it 'has proper Content Security Policy headers' do it 'has proper Content Security Policy headers' do
visit root_path visit root_path
......
...@@ -21,6 +21,10 @@ RSpec.describe API::CaptchaCheck do ...@@ -21,6 +21,10 @@ RSpec.describe API::CaptchaCheck do
end end
context 'when the feature flag arkose_labs_login_challenge is enabled' do context 'when the feature flag arkose_labs_login_challenge is enabled' do
before do
stub_feature_flags(arkose_labs_login_challenge: true)
end
context 'when the username is invalid' do context 'when the username is invalid' do
let(:invalid_username) { 'invalidUsername' } let(:invalid_username) { 'invalidUsername' }
......
...@@ -23,6 +23,10 @@ RSpec.describe Users::CaptchaChallengeService do ...@@ -23,6 +23,10 @@ RSpec.describe Users::CaptchaChallengeService do
end end
context 'when feature flag arkose_labs_login_challenge is enabled' do context 'when feature flag arkose_labs_login_challenge is enabled' do
before do
stub_feature_flags(arkose_labs_login_challenge: true)
end
context 'when the user has never logged in previously' do context 'when the user has never logged in previously' do
before do before do
user.last_sign_in_at = nil user.last_sign_in_at = nil
......
...@@ -16,9 +16,9 @@ RSpec.describe 'devise/sessions/new' do ...@@ -16,9 +16,9 @@ RSpec.describe 'devise/sessions/new' do
allow(Gitlab).to receive(:com?).and_return(true) allow(Gitlab).to receive(:com?).and_return(true)
end end
context 'when arkose_labs_enabled? is enabled' do context 'when the :arkose_labs_login_challenge feature flag is enabled' do
before do before do
stub_arkose_labs(enabled: true) stub_feature_flags(arkose_labs_login_challenge: true)
subject subject
end end
...@@ -32,9 +32,9 @@ RSpec.describe 'devise/sessions/new' do ...@@ -32,9 +32,9 @@ RSpec.describe 'devise/sessions/new' do
end end
end end
context 'when arkose_labs_enabled? is disabled' do context 'when the :arkose_labs_login_challenge feature flag is disabled' do
before do before do
stub_arkose_labs(enabled: false) stub_feature_flags(arkose_labs_login_challenge: false)
subject subject
end end
...@@ -55,8 +55,4 @@ RSpec.describe 'devise/sessions/new' do ...@@ -55,8 +55,4 @@ RSpec.describe 'devise/sessions/new' do
allow(view).to receive(:captcha_enabled?).and_return(false) allow(view).to receive(:captcha_enabled?).and_return(false)
allow(view).to receive(:captcha_on_login_required?).and_return(false) allow(view).to receive(:captcha_on_login_required?).and_return(false)
end end
def stub_arkose_labs(enabled:)
allow(view).to receive(:arkose_labs_enabled?).and_return(enabled)
end
end end
...@@ -12,7 +12,6 @@ RSpec.describe 'Sessions (JavaScript fixtures)' do ...@@ -12,7 +12,6 @@ RSpec.describe 'Sessions (JavaScript fixtures)' do
before do before do
set_devise_mapping(context: @request) set_devise_mapping(context: @request)
allow(controller).to receive(:arkose_labs_enabled?).and_return(true)
end end
it 'sessions/new.html' do it 'sessions/new.html' do
......
...@@ -329,6 +329,10 @@ RSpec.configure do |config| ...@@ -329,6 +329,10 @@ RSpec.configure do |config|
stub_feature_flags(disable_anonymous_search: false) stub_feature_flags(disable_anonymous_search: false)
stub_feature_flags(disable_anonymous_project_search: false) stub_feature_flags(disable_anonymous_project_search: false)
# Specs should not get a CAPTCHA challenge by default, this makes the sign-in flow simpler in
# most cases. We do test the CAPTCHA flow in the appropriate specs.
stub_feature_flags(arkose_labs_login_challenge: false)
allow(Gitlab::GitalyClient).to receive(:can_use_disk?).and_return(enable_rugged) allow(Gitlab::GitalyClient).to receive(:can_use_disk?).and_return(enable_rugged)
else else
unstub_all_feature_flags unstub_all_feature_flags
......
...@@ -9,7 +9,6 @@ RSpec.describe 'devise/sessions/new' do ...@@ -9,7 +9,6 @@ RSpec.describe 'devise/sessions/new' do
before do before do
stub_devise stub_devise
disable_captcha disable_captcha
allow(view).to receive(:arkose_labs_enabled?).and_return(false)
allow(Gitlab).to receive(:com?).and_return(true) allow(Gitlab).to receive(:com?).and_return(true)
end end
......
...@@ -11,7 +11,6 @@ RSpec.describe 'devise/shared/_signin_box' do ...@@ -11,7 +11,6 @@ RSpec.describe 'devise/shared/_signin_box' do
allow(view).to receive(:captcha_enabled?).and_return(false) allow(view).to receive(:captcha_enabled?).and_return(false)
allow(view).to receive(:captcha_on_login_required?).and_return(false) allow(view).to receive(:captcha_on_login_required?).and_return(false)
allow(view).to receive(:experiment_enabled?).and_return(false) allow(view).to receive(:experiment_enabled?).and_return(false)
allow(view).to receive(:arkose_labs_enabled?).and_return(false)
end end
it 'is shown when Crowd is enabled' do it 'is shown when Crowd is enabled' do
......
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