From d7f509798f44b4162006ec99643b437d9dfff6f4 Mon Sep 17 00:00:00 2001 From: Franco Fichtner Date: Tue, 25 Jun 2019 08:52:57 +0200 Subject: [PATCH] reporting: improve NetFlow validation and form behaviour #3547 --- .../models/OPNsense/Diagnostics/Netflow.php | 77 ++++++++++--------- .../views/OPNsense/Diagnostics/netflow.volt | 62 +++++++-------- 2 files changed, 73 insertions(+), 66 deletions(-) diff --git a/src/opnsense/mvc/app/models/OPNsense/Diagnostics/Netflow.php b/src/opnsense/mvc/app/models/OPNsense/Diagnostics/Netflow.php index a7df8a4d6..81dec940f 100644 --- a/src/opnsense/mvc/app/models/OPNsense/Diagnostics/Netflow.php +++ b/src/opnsense/mvc/app/models/OPNsense/Diagnostics/Netflow.php @@ -1,31 +1,31 @@ getFlatNodes() as $key => $node) { if ($validateFullModel || $node->isFieldChanged()) { $parentNode = $node->getParentNode(); @@ -52,22 +55,26 @@ class Netflow extends BaseModel if ($ptagname == 'capture' && in_array($tagname, array('interfaces', 'egress_only'))) { $intf_list = explode(',', (string)$parentNode->interfaces); $egress_list = explode(',', (string)$parentNode->egress_only); - $missing = array(); - foreach ($egress_list as $egress_item) { - if (!in_array($egress_item, $intf_list)) { - $missing[] = $egress_item; - } - } - if (!empty($missing)) { - $messages->appendMessage(new \Phalcon\Validation\Message( - sprintf(gettext("Egress interface(s) [%s] missing in listening interfaces"), - implode(',', $missing)), - $key - )); - } } } } + + foreach ($egress_list as $egress_item) { + if (!in_array($egress_item, $intf_list)) { + $missing[] = $egress_item; + } + } + + if (count($missing)) { + $messages->appendMessage(new \Phalcon\Validation\Message( + sprintf( + gettext('WAN interfaces missing in listening interfaces: %s'), + implode(', ', $missing) + ), + 'capture.interfaces' + )); + } + return $messages; } } diff --git a/src/opnsense/mvc/app/views/OPNsense/Diagnostics/netflow.volt b/src/opnsense/mvc/app/views/OPNsense/Diagnostics/netflow.volt index af5a472af..821e4c60b 100644 --- a/src/opnsense/mvc/app/views/OPNsense/Diagnostics/netflow.volt +++ b/src/opnsense/mvc/app/views/OPNsense/Diagnostics/netflow.volt @@ -1,30 +1,28 @@ {# - -OPNsense® is Copyright © 2016 by 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. - -#} + # Copyright (c) 2016 Deciso B.V. + # All rights reserved. + # + # Redistribution and use in source and binary forms, with or withoutmodification, + # 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. + #}