fix brakeman SQL injection warning

pull/603/head
Alex Turchyn 3 weeks ago committed by GitHub
parent 65491936c3
commit ab9008b3be
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

@ -7,13 +7,15 @@ class SubmittersAutocompleteController < ApplicationController
LIMIT = 100 LIMIT = 100
def index def index
submitters = search_submitters(@submitters) field = SELECT_COLUMNS.find { |c| c == params[:field] }
submitters = search_submitters(@submitters, field)
arel_columns = SELECT_COLUMNS.map { |col| Submitter.arel_table[col] } arel_columns = SELECT_COLUMNS.map { |col| Submitter.arel_table[col] }
values = values =
if params[:field].present? && SELECT_COLUMNS.include?(params[:field]) if field
max_ids = submitters.group(params[:field]).limit(LIMIT).select(Submitter.arel_table[:id].maximum) max_ids = submitters.group(field).limit(LIMIT).select(Submitter.arel_table[:id].maximum)
submitters.where(id: max_ids).order(id: :desc).pluck(arel_columns) submitters.where(id: max_ids).order(id: :desc).pluck(arel_columns)
else else
@ -27,12 +29,12 @@ class SubmittersAutocompleteController < ApplicationController
private private
def search_submitters(submitters) def search_submitters(submitters, field)
if SELECT_COLUMNS.include?(params[:field]) if field
if Docuseal.fulltext_search? if Docuseal.fulltext_search?
Submitters.fulltext_search_field(current_user, submitters, params[:q], params[:field]) Submitters.fulltext_search_field(current_user, submitters, params[:q], field)
else else
column = Submitter.arel_table[params[:field].to_sym] column = Submitter.arel_table[field.to_sym]
term = "#{params[:q].downcase}%" term = "#{params[:q].downcase}%"

Loading…
Cancel
Save