From bbd36d5f83a29debbb4a72e79547ee7c4b35dbe0 Mon Sep 17 00:00:00 2001 From: Ravi Kumar Kempapura Srinivasa Date: Fri, 20 Aug 2021 10:11:18 +0200 Subject: [PATCH] Check if the column in the row is set for filters When the column is not set for the filters undefined property exception is thrown in icinga-director. This is a quick fix to solve the issue. --- library/Icinga/Data/Filter/FilterEqual.php | 4 ++++ library/Icinga/Data/Filter/FilterEqualOrGreaterThan.php | 4 ++++ library/Icinga/Data/Filter/FilterEqualOrLessThan.php | 4 ++++ library/Icinga/Data/Filter/FilterLessThan.php | 4 ++++ 4 files changed, 16 insertions(+) diff --git a/library/Icinga/Data/Filter/FilterEqual.php b/library/Icinga/Data/Filter/FilterEqual.php index 46b16048b..da53d3f67 100644 --- a/library/Icinga/Data/Filter/FilterEqual.php +++ b/library/Icinga/Data/Filter/FilterEqual.php @@ -7,6 +7,10 @@ class FilterEqual extends FilterExpression { public function matches($row) { + if (! isset($row->{$this->column})) { + return false; + } + return (string) $row->{$this->column} === (string) $this->expression; } } diff --git a/library/Icinga/Data/Filter/FilterEqualOrGreaterThan.php b/library/Icinga/Data/Filter/FilterEqualOrGreaterThan.php index c0f0152ab..d7bd5b861 100644 --- a/library/Icinga/Data/Filter/FilterEqualOrGreaterThan.php +++ b/library/Icinga/Data/Filter/FilterEqualOrGreaterThan.php @@ -7,6 +7,10 @@ class FilterEqualOrGreaterThan extends FilterExpression { public function matches($row) { + if (! isset($row->{$this->column})) { + return false; + } + return (string) $row->{$this->column} >= (string) $this->expression; } } diff --git a/library/Icinga/Data/Filter/FilterEqualOrLessThan.php b/library/Icinga/Data/Filter/FilterEqualOrLessThan.php index c50a431fb..8016fc475 100644 --- a/library/Icinga/Data/Filter/FilterEqualOrLessThan.php +++ b/library/Icinga/Data/Filter/FilterEqualOrLessThan.php @@ -17,6 +17,10 @@ class FilterEqualOrLessThan extends FilterExpression public function matches($row) { + if (! isset($row->{$this->column})) { + return false; + } + return (string) $row->{$this->column} <= (string) $this->expression; } } diff --git a/library/Icinga/Data/Filter/FilterLessThan.php b/library/Icinga/Data/Filter/FilterLessThan.php index ded5646e3..c13a1cea5 100644 --- a/library/Icinga/Data/Filter/FilterLessThan.php +++ b/library/Icinga/Data/Filter/FilterLessThan.php @@ -17,6 +17,10 @@ class FilterLessThan extends FilterExpression public function matches($row) { + if (! isset($row->{$this->column})) { + return false; + } + return (string) $row->{$this->column} < (string) $this->expression; } }