summaryrefslogtreecommitdiffstats
path: root/Bugzilla/WebService/Util.pm
diff options
context:
space:
mode:
Diffstat (limited to 'Bugzilla/WebService/Util.pm')
-rw-r--r--Bugzilla/WebService/Util.pm10
1 files changed, 9 insertions, 1 deletions
diff --git a/Bugzilla/WebService/Util.pm b/Bugzilla/WebService/Util.pm
index cbbc47921..503246c16 100644
--- a/Bugzilla/WebService/Util.pm
+++ b/Bugzilla/WebService/Util.pm
@@ -18,6 +18,7 @@ use Bugzilla::WebService::Constants;
use Storable qw(dclone);
use URI::Escape qw(uri_unescape);
+use List::MoreUtils qw(all any);
use parent qw(Exporter);
@@ -221,7 +222,8 @@ sub validate {
# sent any parameters at all, and we're getting @keys where
# $params should be.
return ($self, undef) if (defined $params and !ref $params);
-
+
+ my @id_params = qw( ids comment_ids );
# If @keys is not empty then we convert any named
# parameters that have scalar values to arrayrefs
# that match.
@@ -230,6 +232,12 @@ sub validate {
$params->{$key} = ref $params->{$key}
? $params->{$key}
: [ $params->{$key} ];
+
+ if (any { $key eq $_ } @id_params) {
+ my $ids = $params->{$key};
+ ThrowCodeError('param_integer_array_required', { param => $key })
+ unless ref($ids) eq 'ARRAY' && all { /^[0-9]+$/ } @$ids;
+ }
}
}