diff --git a/src/opnsense/mvc/app/library/OPNsense/Firewall/FilterRule.php b/src/opnsense/mvc/app/library/OPNsense/Firewall/FilterRule.php index 150895d67..3e6fdd2a5 100644 --- a/src/opnsense/mvc/app/library/OPNsense/Firewall/FilterRule.php +++ b/src/opnsense/mvc/app/library/OPNsense/Firewall/FilterRule.php @@ -352,7 +352,7 @@ class FilterRule extends Rule } public function isUIFromNot() { - return isset($this->rule['source']) && isset($this->rule['source']['not']); + return (isset($this->rule['source']) && isset($this->rule['source']['not'])) || !empty($this->rule['from_not']); } public function getUIFromPort() { @@ -378,7 +378,7 @@ class FilterRule extends Rule } public function isUIToNot() { - return isset($this->rule['destination']) && isset($this->rule['destination']['not']); + return isset($this->rule['destination']) && isset($this->rule['destination']['not']) || !empty($this->rule['to_not']); } public function getUIToPort() { diff --git a/src/opnsense/scripts/filter/list_non_mvc_rules.php b/src/opnsense/scripts/filter/list_non_mvc_rules.php index 1e18b601c..c5b651a05 100755 --- a/src/opnsense/scripts/filter/list_non_mvc_rules.php +++ b/src/opnsense/scripts/filter/list_non_mvc_rules.php @@ -76,6 +76,14 @@ foreach ($fw->iterateFilterRules() as $prio => $item) { } $rule['action'] = $rule['action'] ?? 'pass'; $rule['ipprotocol'] = $rule['ipprotocol'] ?? 'inet'; + if (!empty($rule['from_not'])) { + unset($rule['from_not']); + $rule['source_not'] = true; + } + if (!empty($rule['to_not'])) { + unset($rule['destination_not']); + $rule['destination_not'] = true; + } /** * Evaluation order consists of a priority group and a sequence within the set,