diff options
Diffstat (limited to 'lib/gitlab/search/abuse_detection.rb')
-rw-r--r-- | lib/gitlab/search/abuse_detection.rb | 32 |
1 files changed, 3 insertions, 29 deletions
diff --git a/lib/gitlab/search/abuse_detection.rb b/lib/gitlab/search/abuse_detection.rb index 1fd7c6cfe8d..1e4169f3fd7 100644 --- a/lib/gitlab/search/abuse_detection.rb +++ b/lib/gitlab/search/abuse_detection.rb @@ -6,7 +6,6 @@ module Gitlab include ActiveModel::Validations include AbuseValidators - MAX_PIPE_SYNTAX_FILTERS = 5 ABUSIVE_TERM_SIZE = 100 ALLOWED_CHARS_REGEX = %r{\A[[:alnum:]_\-\/\.!]+\z} @@ -58,18 +57,10 @@ module Gitlab validates :query_string, :repository_ref, :project_ref, no_abusive_coercion_from_string: true - validate :no_abusive_pipes, if: :detect_abusive_pipes - attr_reader(*READABLE_PARAMS) - attr_reader :raw_params, :detect_abusive_pipes - - def initialize(params, detect_abusive_pipes: true) - @raw_params = {} - READABLE_PARAMS.each do |p| - instance_variable_set("@#{p}", params[p]) - @raw_params[p] = params[p] - end - @detect_abusive_pipes = detect_abusive_pipes + + def initialize(params) + READABLE_PARAMS.each { |p| instance_variable_set("@#{p}", params[p]) } end private @@ -85,23 +76,6 @@ module Gitlab def stop_word_search? STOP_WORDS.include? query_string end - - def no_abusive_pipes - pipes = query_string.to_s.split('|') - errors.add(:query_string, 'too many pipe syntax filters') if pipes.length > MAX_PIPE_SYNTAX_FILTERS - - pipes.each do |q| - self.class.new(raw_params.merge(query_string: q), detect_abusive_pipes: false).tap do |p| - p.validate - - p.errors.messages_for(:query_string).each do |msg| - next if errors.added?(:query_string, msg) - - errors.add(:query_string, msg) - end - end - end - end end end end |