blob: c726f76627218edb307b8e528a163c891e67a104 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
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;
}
}
|