summaryrefslogtreecommitdiff
path: root/lib/gitlab/rack_attack/user_allowlist.rb
blob: f3043f44091199e79cef4cd472fd6cfc549aa7a3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
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