summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--modules-available/statistics/inc/statisticsfilter.inc.php30
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