Revision f1a6dee3
Added by Ori Rabin over 8 years ago
app/models/concerns/hostext/search.rb | ||
---|---|---|
end
|
||
key_name = User.connection.quote_column_name(clean_key)
|
||
condition = sanitize_sql_for_conditions(["#{key_name} #{operator} ?", value_to_sql(operator, value)])
|
||
users = User.all(:conditions => condition)
|
||
users = User.where(condition)
|
||
hosts = users.map(&:hosts).flatten
|
||
opts = hosts.empty? ? "< 0" : "IN (#{hosts.map(&:id).join(',')})"
|
||
|
||
... | ... | |
def search_by_params(key, operator, value)
|
||
key_name = key.sub(/^.*\./,'')
|
||
condition = sanitize_sql_for_conditions(["name = ? and value #{operator} ?", key_name, value_to_sql(operator, value)])
|
||
opts = {:conditions => condition, :order => :priority}
|
||
p = Parameter.all(opts)
|
||
p = Parameter.where(condition).order(:priority)
|
||
return {:conditions => '1 = 0'} if p.blank?
|
||
|
||
max = p.first.priority
|
||
condition = sanitize_sql_for_conditions(["name = ? and NOT(value #{operator} ?) and priority > ?",key_name,value_to_sql(operator, value), max])
|
||
negate_opts = {:conditions => condition, :order => :priority}
|
||
n = Parameter.all(negate_opts)
|
||
n = Parameter.where(condition).order(:priority)
|
||
|
||
conditions = param_conditions(p)
|
||
negate = param_conditions(n)
|
Also available in: Unified diff
Fixes #12891 - search_by_params and search_by_user for host return correct results