Fix filter_parameter_logging of non-hash values within array params

Signed-off-by: Michael Koziarski <michael@koziarski.com>
[#2927 state:committed]
This commit is contained in:
Sebastian Delmont
2009-07-20 17:53:23 -04:00
committed by Michael Koziarski
parent 143c55d325
commit ead5d88bf1
2 changed files with 8 additions and 2 deletions

View File

@@ -493,7 +493,12 @@ module ActionController #:nodoc:
filtered_parameters[key] = filter_parameters(value)
elsif value.is_a?(Array)
filtered_parameters[key] = value.collect do |item|
filter_parameters(item)
case item
when Hash, Array
filter_parameters(item)
else
item
end
end
elsif block_given?
key = key.dup

View File

@@ -24,7 +24,8 @@ class FilterParamTest < Test::Unit::TestCase
[{'foo'=>'bar', 'baz'=>'foo'},{'foo'=>'[FILTERED]', 'baz'=>'[FILTERED]'},%w'foo baz'],
[{'bar'=>{'foo'=>'bar','bar'=>'foo'}},{'bar'=>{'foo'=>'[FILTERED]','bar'=>'foo'}},%w'fo'],
[{'foo'=>{'foo'=>'bar','bar'=>'foo'}},{'foo'=>'[FILTERED]'},%w'f banana'],
[{'baz'=>[{'foo'=>'baz'}]}, {'baz'=>[{'foo'=>'[FILTERED]'}]}, %w(foo)]]
[{'baz'=>[{'foo'=>'baz'}]}, {'baz'=>[{'foo'=>'[FILTERED]'}]}, %w(foo)],
[{'baz'=>[{'foo'=>'baz'}, 1, 2, 3]}, {'baz'=>[{'foo'=>'[FILTERED]'}, 1, 2, 3]}, %w(foo)]]
test_hashes.each do |before_filter, after_filter, filter_words|
FilterParamController.filter_parameter_logging(*filter_words)