diff options
-rw-r--r-- | modules-available/statistics/inc/statisticsfilter.inc.php | 30 |
1 files changed, 18 insertions, 12 deletions
diff --git a/modules-available/statistics/inc/statisticsfilter.inc.php b/modules-available/statistics/inc/statisticsfilter.inc.php index a53ef4d1..d60de9e7 100644 --- a/modules-available/statistics/inc/statisticsfilter.inc.php +++ b/modules-available/statistics/inc/statisticsfilter.inc.php @@ -358,24 +358,28 @@ class EnumStatisticsFilter extends SimpleStatisticsFilter public function whereClause(string $operator, $argument, array &$args, array &$joins): string { - $keys = ArrayUtil::flattenByKey($this->values, 'key'); - if (is_array($argument)) { - $ok = true; - foreach ($argument as $e) { - if (!in_array($e, $keys)) { - $ok = false; + if ($this->validateArgument()) { + $keys = ArrayUtil::flattenByKey($this->values, 'key'); + if (is_array($argument)) { + $ok = true; + foreach ($argument as $e) { + if (!in_array($e, $keys)) { + $ok = false; + } } + } else { + $ok = in_array($argument, $keys); + } + if (!$ok) { + Message::addError('invalid-enum-item', $this->column, $argument); + return '0'; } - } else { - $ok = in_array($argument, $keys); - } - if (!$ok) { - Message::addError('invalid-enum-item', $this->column, $argument); - return '0'; } return parent::whereClause($operator, $argument, $args, $joins); } + protected function validateArgument(): bool { return true; } + } class StandbyCrashStatisticsFilter extends EnumStatisticsFilter @@ -397,6 +401,8 @@ class StandbyCrashStatisticsFilter extends EnumStatisticsFilter return parent::whereClause($operator, $argument, $args, $joins); } + protected function validateArgument(): bool { return false; } + } class DateStatisticsFilter extends StatisticsFilter |