From 83bdc4b47e220adf751f317b9ec72db91eea353e Mon Sep 17 00:00:00 2001 From: Ad Schellevis Date: Wed, 6 Mar 2019 13:23:04 +0100 Subject: [PATCH] MVC, optionally allow dynamic interfaces for InterfaceField, ref https://github.com/opnsense/core/issues/2332 --- .../Base/FieldTypes/InterfaceField.php | 20 ++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/src/opnsense/mvc/app/models/OPNsense/Base/FieldTypes/InterfaceField.php b/src/opnsense/mvc/app/models/OPNsense/Base/FieldTypes/InterfaceField.php index 830b34d75..423b1a6e9 100644 --- a/src/opnsense/mvc/app/models/OPNsense/Base/FieldTypes/InterfaceField.php +++ b/src/opnsense/mvc/app/models/OPNsense/Base/FieldTypes/InterfaceField.php @@ -75,6 +75,11 @@ class InterfaceField extends BaseField */ private $internalAddParentDevices = false; + /** + * @var bool allow dynamic interfaces + */ + private $internalAllowDynamic = false; + /** * collect parents for lagg interfaces * @return array named array containing device and lagg interface @@ -131,7 +136,7 @@ class InterfaceField extends BaseField // Iterate over all interfaces configuration and collect data if (isset($configObj->interfaces) && $configObj->interfaces->count() > 0) { foreach ($configObj->interfaces->children() as $key => $value) { - if (!empty($value->internal_dynamic)) { + if (!$this->internalAllowDynamic && !empty($value->internal_dynamic)) { continue; } $allInterfaces[$key] = $value; @@ -233,6 +238,19 @@ class InterfaceField extends BaseField } } + /** + * select if dynamic (hotplug) interfaces maybe selectable + * @param $value boolean value 0/1 + */ + public function setAllowDynamic($value) + { + if (trim(strtoupper($value)) == "Y") { + $this->internalAllowDynamic = true; + } else { + $this->internalAllowDynamic = false; + } + } + /** * get valid options, descriptions and selected value * @return array