Sanitize input for ilike in Account::Entry.search (#988)
This commit was merged in pull request #988.
This commit is contained in:
@@ -137,7 +137,7 @@ class Account::Entry < ApplicationRecord
|
||||
|
||||
def search(params)
|
||||
query = all
|
||||
query = query.where("account_entries.name ILIKE ?", "%#{params[:search]}%") if params[:search].present?
|
||||
query = query.where("account_entries.name ILIKE ?", "%#{sanitize_sql_like(params[:search])}%") if params[:search].present?
|
||||
query = query.where("account_entries.date >= ?", params[:start_date]) if params[:start_date].present?
|
||||
query = query.where("account_entries.date <= ?", params[:end_date]) if params[:end_date].present?
|
||||
|
||||
|
||||
@@ -62,6 +62,9 @@ class Account::EntryTest < ActiveSupport::TestCase
|
||||
params = params.merge(categories: [ category.name ], merchants: [ merchant.name ]) # transaction specific search param
|
||||
|
||||
assert_equal 1, family.entries.search(params).size
|
||||
|
||||
params = { search: "%" }
|
||||
assert_equal 0, family.entries.search(params).size
|
||||
end
|
||||
|
||||
test "can calculate total spending for a group of transactions" do
|
||||
|
||||
Reference in New Issue
Block a user