escape wildcard query

pull/402/merge
Pete Matsyburka 1 month ago
parent 680ab9dbed
commit 34ea639c25

@ -18,7 +18,8 @@ module Submissions
def plain_search(submissions, keyword, search_values: false, search_template: false) def plain_search(submissions, keyword, search_values: false, search_template: false)
return submissions if keyword.blank? return submissions if keyword.blank?
term = "%#{keyword.downcase}%" sanitized = ActiveRecord::Base.sanitize_sql_like(keyword.downcase)
term = "%#{sanitized}%"
arel_table = Submitter.arel_table arel_table = Submitter.arel_table
@ -31,7 +32,7 @@ module Submissions
if search_template if search_template
submissions = submissions.left_joins(:template) submissions = submissions.left_joins(:template)
arel = arel.or(Template.arel_table[:name].lower.matches("%#{keyword.downcase}%")) arel = arel.or(Template.arel_table[:name].lower.matches("%#{sanitized}%"))
end end
submissions.joins(:submitters).where(arel).group(:id) submissions.joins(:submitters).where(arel).group(:id)

@ -20,7 +20,9 @@ module TemplateFolders
def search(folders, keyword) def search(folders, keyword)
return folders if keyword.blank? return folders if keyword.blank?
folders.where(TemplateFolder.arel_table[:name].lower.matches("%#{keyword.downcase}%")) sanitized = ActiveRecord::Base.sanitize_sql_like(keyword.downcase)
folders.where(TemplateFolder.arel_table[:name].lower.matches("%#{sanitized}%"))
end end
def filter_active_folders(template_folders, templates) def filter_active_folders(template_folders, templates)

@ -52,7 +52,9 @@ module Templates
def plain_search(templates, keyword) def plain_search(templates, keyword)
return templates if keyword.blank? return templates if keyword.blank?
templates.where(Template.arel_table[:name].lower.matches("%#{keyword.downcase}%")) sanitized = ActiveRecord::Base.sanitize_sql_like(keyword.downcase)
templates.where(Template.arel_table[:name].lower.matches("%#{sanitized}%"))
end end
def fulltext_search(current_user, templates, keyword) def fulltext_search(current_user, templates, keyword)

Loading…
Cancel
Save