Project

General

Profile

« Previous | Next » 

Revision fce6aba7

Added by Ohad Levy over 11 years ago

  • ID fce6aba7b2f4361cd654e39455b91843badc2228

fixes #2078 - Classes parameters value leak fix

View differences:

app/models/classification.rb
klasses[klass.name] ||= { }
if key_hash[klass.id]
key_hash[klass.id].each do |param|
klasses[klass.name][param.to_s] = values[param.to_s] ? values[param.to_s][:value] : param.default_value
klasses[klass.name][param.to_s] = if values[param.id] and values[param.id][param.to_s]
values[param.id][param.to_s][:value]
else
param.default_value
end
end
else
klasses[klass.name] = nil
......
values = {}
path2matches.each do |match|
LookupValue.where(:match => match).where(:lookup_key_id => class_parameters.map(&:id)).each do |value|
key_id = value.lookup_key_id
values[key_id] ||= {}
key = @keys.detect{|k| k.id == value.lookup_key_id }
name = key.to_s
element = match.split(LookupKey::EQ_DELM).first
if values[name].nil?
values[name] = {:value => value.value, :element => element}
if values[key_id][name].nil?
values[key_id][name] = {:value => value.value, :element => element}
else
if key.path.index(element) < key.path.index(values[name][:element])
values[name] = {:value => value.value, :element => element}
if key.path.index(element) < key.path.index(values[key_id][name][:element])
values[key_id][name] = {:value => value.value, :element => element}
end
end
end

Also available in: Unified diff