diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-14 13:17:47 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-14 13:17:47 +0000 |
commit | 5419d4428c86c488a43124f85e5407d7cbae6541 (patch) | |
tree | 772c4221a20fd7d1b3e7e67c6e21755a50e80fd7 /library/Director/Filter/FilterEnrichment.php | |
parent | Adding upstream version 1.10.2. (diff) | |
download | icingaweb2-module-director-upstream.tar.xz icingaweb2-module-director-upstream.zip |
Adding upstream version 1.11.1.upstream/1.11.1upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'library/Director/Filter/FilterEnrichment.php')
-rw-r--r-- | library/Director/Filter/FilterEnrichment.php | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/library/Director/Filter/FilterEnrichment.php b/library/Director/Filter/FilterEnrichment.php new file mode 100644 index 0000000..c726f76 --- /dev/null +++ b/library/Director/Filter/FilterEnrichment.php @@ -0,0 +1,29 @@ +<?php + +namespace Icinga\Module\Director\Filter; + +use Icinga\Data\Filter\Filter; +use Icinga\Data\Filter\FilterChain; +use Icinga\Data\Filter\FilterExpression; + +class FilterEnrichment +{ + public static function enrichFilter(Filter $filter): Filter + { + if ($filter instanceof FilterExpression) { + if (CidrExpression::isCidrFormat($filter->getExpression())) { + return CidrExpression::fromExpression($filter); + } + } elseif ($filter instanceof FilterChain) { + foreach ($filter->filters() as $subFilter) { + if ($subFilter instanceof FilterExpression + && CidrExpression::isCidrFormat($subFilter->getExpression()) + ) { + $filter->replaceById($subFilter->getId(), CidrExpression::fromExpression($subFilter)); + } + } + } + + return $filter; + } +} |