Commit e8bc10b2 authored by Stan Hu's avatar Stan Hu

Merge branch 'mc_rocha-add-feature-flag-to-prevent-login' into 'master'

Add a feature flag to control when the login can be prevented

See merge request gitlab-org/gitlab!84971
parents 07ec7757 191e2093
---
name: arkose_labs_prevent_login
introduced_by_url:
rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/358838
milestone: '14.10'
type: development
group: group::antiabuse
default_enabled: false
......@@ -122,6 +122,8 @@ module Arkose
end
def low_risk?(response)
return true unless Feature.enabled?(:arkose_labs_prevent_login, default_enabled: :yaml)
risk_band = risk_band(response)
risk_band.present? ? risk_band != 'High' : true
end
......
......@@ -21,6 +21,7 @@ RSpec.describe Arkose::UserVerificationService do
end
end
context 'when feature arkose_labs_prevent_login is enabled' do
context 'when the user solved the challenge' do
context 'when the risk score is not high' do
let(:arkose_ec_response) { Gitlab::Json.parse(File.read(Rails.root.join('ee/spec/fixtures/arkose/successfully_solved_ec_response.json'))) }
......@@ -102,6 +103,7 @@ RSpec.describe Arkose::UserVerificationService do
end
end
end
end
context 'when an error occurs during the Arkose request' do
it 'returns true' do
......@@ -109,5 +111,20 @@ RSpec.describe Arkose::UserVerificationService do
expect(subject).to be_truthy
end
end
context 'when feature arkose_labs_prevent_login is disabled' do
before do
stub_feature_flags(arkose_labs_prevent_login: false)
end
context 'when the risk score is high' do
let(:arkose_ec_response) { Gitlab::Json.parse(File.read(Rails.root.join('ee/spec/fixtures/arkose/successfully_solved_ec_response_high_risk.json'))) }
it 'returns true' do
allow(Gitlab::HTTP).to receive(:perform_request).and_return(response)
expect(subject).to be_truthy
end
end
end
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