summaryrefslogtreecommitdiffstats
path: root/Bugzilla/API/1_0/Util.pm
diff options
context:
space:
mode:
authorDavid Lawrence <dkl@mozilla.com>2015-12-22 21:57:02 +0100
committerDavid Lawrence <dkl@mozilla.com>2015-12-22 21:57:02 +0100
commitc94abb0445d015c1bffcd7207eac6fd9a3a8371b (patch)
tree6ad96bda176859c9347a36940287b4b6c4fd3599 /Bugzilla/API/1_0/Util.pm
parent34f8910f2b22ada382d191052f70a7427c88f95a (diff)
downloadbugzilla-c94abb0445d015c1bffcd7207eac6fd9a3a8371b.tar.gz
bugzilla-c94abb0445d015c1bffcd7207eac6fd9a3a8371b.tar.xz
Revert "Bug 1230932 - Providing a condition as an ID to the webservice results in a taint error"
Diffstat (limited to 'Bugzilla/API/1_0/Util.pm')
-rw-r--r--Bugzilla/API/1_0/Util.pm23
1 files changed, 22 insertions, 1 deletions
diff --git a/Bugzilla/API/1_0/Util.pm b/Bugzilla/API/1_0/Util.pm
index 3fcf28cdf..d22935f6e 100644
--- a/Bugzilla/API/1_0/Util.pm
+++ b/Bugzilla/API/1_0/Util.pm
@@ -22,7 +22,6 @@ use MIME::Base64 qw(decode_base64 encode_base64);
use Storable qw(dclone);
use Test::Taint ();
use URI::Escape qw(uri_unescape);
-use Bugzilla::WebService::Util qw(validate);
use parent qw(Exporter);
@@ -242,6 +241,28 @@ sub api_include_exclude {
return $params;
}
+sub validate {
+ my ($self, $params, @keys) = @_;
+
+ # If $params is defined but not a reference, then we weren't
+ # sent any parameters at all, and we're getting @keys where
+ # $params should be.
+ return ($self, undef) if (defined $params and !ref $params);
+
+ # If @keys is not empty then we convert any named
+ # parameters that have scalar values to arrayrefs
+ # that match.
+ foreach my $key (@keys) {
+ if (exists $params->{$key}) {
+ $params->{$key} = ref $params->{$key}
+ ? $params->{$key}
+ : [ $params->{$key} ];
+ }
+ }
+
+ return ($self, $params);
+}
+
sub translate {
my ($params, $mapped) = @_;
my %changes;