mirror of
https://github.com/netbirdio/plugins.git
synced 2026-05-22 18:44:07 -07:00
os-firewall: hook in rules and minor changes to FilterRuleField (https://github.com/opnsense/plugins/issues/1720)
This commit is contained in:
committed by
Ad Schellevis
parent
01543474a9
commit
66e2b7a340
@@ -0,0 +1,41 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
* Copyright (C) 2020 Deciso B.V.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright notice,
|
||||
* this list of conditions and the following disclaimer.
|
||||
*
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
|
||||
* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
|
||||
* AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||
* AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
|
||||
* OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
* POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
|
||||
/**
|
||||
* @param $fw
|
||||
*/
|
||||
function pfplugin_firewall($fw)
|
||||
{
|
||||
$mdlFilter = new OPNsense\Firewall\Filter();
|
||||
foreach ($mdlFilter->rules->rule->sortedBy(["sequence"]) as $key => $rule) {
|
||||
$content = $rule->serialize();
|
||||
$content["#ref"] = "ui/firewall/filter#" . (string)$rule->getAttributes()['uuid'];
|
||||
$fw->registerFilterRule($rule->getPriority(), $content);
|
||||
}
|
||||
}
|
||||
+5
-2
@@ -54,6 +54,10 @@ class FilterRuleContainerField extends ContainerField
|
||||
if (!in_array($key, $map_manual)) {
|
||||
if (is_a($node, "OPNsense\\Base\\FieldTypes\\BooleanField")) {
|
||||
$result[$key] = !empty((string)$node);
|
||||
} elseif (is_a($node, "OPNsense\\Base\\FieldTypes\\ProtocolField")) {
|
||||
if ((string)$node != 'any') {
|
||||
$result[$key] = (string)$node;
|
||||
}
|
||||
} else {
|
||||
$result[$key] = (string)$node;
|
||||
}
|
||||
@@ -76,9 +80,8 @@ class FilterRuleContainerField extends ContainerField
|
||||
$result['destination']['port'] = (string)$this->destination_port;
|
||||
}
|
||||
}
|
||||
// swap enabled
|
||||
// field mappings and differences
|
||||
$result['disabled'] = empty((string)$this->enabled);
|
||||
//
|
||||
$result['descr'] = (string)$this->description;
|
||||
$result['type'] = (string)$this->action;
|
||||
if (strpos((string)$this->interface, ",") !== false) {
|
||||
|
||||
Reference in New Issue
Block a user