diff options
Diffstat (limited to 'lib/gitlab/rack_attack/user_allowlist.rb')
-rw-r--r-- | lib/gitlab/rack_attack/user_allowlist.rb | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/lib/gitlab/rack_attack/user_allowlist.rb b/lib/gitlab/rack_attack/user_allowlist.rb new file mode 100644 index 00000000000..f3043f44091 --- /dev/null +++ b/lib/gitlab/rack_attack/user_allowlist.rb @@ -0,0 +1,23 @@ +# frozen_string_literal: true + +require 'set' + +module Gitlab + module RackAttack + class UserAllowlist + extend Forwardable + + def_delegators :@set, :empty?, :include?, :to_a + + def initialize(list) + @set = Set.new + + list.to_s.split(',').each do |id| + @set << Integer(id) unless id.blank? + rescue ArgumentError + Gitlab::AuthLogger.error(message: 'ignoring invalid user allowlist entry', entry: id) + end + end + end + end +end |