diff --git a/plist b/plist index cad0df89c3..ab6cad4410 100644 --- a/plist +++ b/plist @@ -367,6 +367,7 @@ /usr/local/opnsense/mvc/app/controllers/OPNsense/IPsec/forms/dialogSPD.xml /usr/local/opnsense/mvc/app/controllers/OPNsense/IPsec/forms/dialogVTI.xml /usr/local/opnsense/mvc/app/controllers/OPNsense/IPsec/forms/settings.xml +/usr/local/opnsense/mvc/app/controllers/OPNsense/Interfaces/Api/AssignmentController.php /usr/local/opnsense/mvc/app/controllers/OPNsense/Interfaces/Api/BridgeSettingsController.php /usr/local/opnsense/mvc/app/controllers/OPNsense/Interfaces/Api/GifSettingsController.php /usr/local/opnsense/mvc/app/controllers/OPNsense/Interfaces/Api/GreSettingsController.php @@ -378,6 +379,7 @@ /usr/local/opnsense/mvc/app/controllers/OPNsense/Interfaces/Api/VipSettingsController.php /usr/local/opnsense/mvc/app/controllers/OPNsense/Interfaces/Api/VlanSettingsController.php /usr/local/opnsense/mvc/app/controllers/OPNsense/Interfaces/Api/VxlanSettingsController.php +/usr/local/opnsense/mvc/app/controllers/OPNsense/Interfaces/AssignmentController.php /usr/local/opnsense/mvc/app/controllers/OPNsense/Interfaces/BridgeController.php /usr/local/opnsense/mvc/app/controllers/OPNsense/Interfaces/GifController.php /usr/local/opnsense/mvc/app/controllers/OPNsense/Interfaces/GreController.php @@ -389,6 +391,7 @@ /usr/local/opnsense/mvc/app/controllers/OPNsense/Interfaces/VipController.php /usr/local/opnsense/mvc/app/controllers/OPNsense/Interfaces/VlanController.php /usr/local/opnsense/mvc/app/controllers/OPNsense/Interfaces/VxlanController.php +/usr/local/opnsense/mvc/app/controllers/OPNsense/Interfaces/forms/dialogAssignment.xml /usr/local/opnsense/mvc/app/controllers/OPNsense/Interfaces/forms/dialogBridge.xml /usr/local/opnsense/mvc/app/controllers/OPNsense/Interfaces/forms/dialogGif.xml /usr/local/opnsense/mvc/app/controllers/OPNsense/Interfaces/forms/dialogGre.xml @@ -810,6 +813,8 @@ /usr/local/opnsense/mvc/app/models/OPNsense/IPsec/Swanctl.php /usr/local/opnsense/mvc/app/models/OPNsense/IPsec/Swanctl.xml /usr/local/opnsense/mvc/app/models/OPNsense/Interfaces/ACL/ACL.xml +/usr/local/opnsense/mvc/app/models/OPNsense/Interfaces/Assignment.php +/usr/local/opnsense/mvc/app/models/OPNsense/Interfaces/Assignment.xml /usr/local/opnsense/mvc/app/models/OPNsense/Interfaces/Bridge.php /usr/local/opnsense/mvc/app/models/OPNsense/Interfaces/Bridge.xml /usr/local/opnsense/mvc/app/models/OPNsense/Interfaces/FieldTypes/BridgeMemberField.php @@ -999,6 +1004,7 @@ /usr/local/opnsense/mvc/app/views/OPNsense/IPsec/spd.volt /usr/local/opnsense/mvc/app/views/OPNsense/IPsec/tunnels.volt /usr/local/opnsense/mvc/app/views/OPNsense/IPsec/vti.volt +/usr/local/opnsense/mvc/app/views/OPNsense/Interface/assignment.volt /usr/local/opnsense/mvc/app/views/OPNsense/Interface/bridge.volt /usr/local/opnsense/mvc/app/views/OPNsense/Interface/gif.volt /usr/local/opnsense/mvc/app/views/OPNsense/Interface/gre.volt @@ -1266,6 +1272,7 @@ /usr/local/opnsense/scripts/interfaces/ifctl.sh /usr/local/opnsense/scripts/interfaces/lib/__init__.py /usr/local/opnsense/scripts/interfaces/list_arp.py +/usr/local/opnsense/scripts/interfaces/list_assign_options.php /usr/local/opnsense/scripts/interfaces/list_hosts.py /usr/local/opnsense/scripts/interfaces/list_macdb.py /usr/local/opnsense/scripts/interfaces/list_ndp.py diff --git a/src/opnsense/mvc/app/controllers/OPNsense/Interfaces/Api/AssignmentController.php b/src/opnsense/mvc/app/controllers/OPNsense/Interfaces/Api/AssignmentController.php new file mode 100644 index 0000000000..bd990913ee --- /dev/null +++ b/src/opnsense/mvc/app/controllers/OPNsense/Interfaces/Api/AssignmentController.php @@ -0,0 +1,77 @@ +searchBase("interface"); + } + + public function setItemAction($uuid) + { + return $this->setBase("interface", "interface", $uuid, $overlay); + } + + public function addItemAction() + { + return $this->addBase("interface", "interface", $overlay); + } + + public function getItemAction($uuid = null) + { + return $this->getBase("interface", "interface", $uuid); + } + + public function delItemAction($uuid) + { + return $this->delBase("interface", $uuid); + } + + public function reconfigureAction() + { + if ($this->request->isPost()) { + //(new Backend())->configdRun("interface xxx"); + return ["status" => "ok"]; + } else { + return ["status" => "failed"]; + } + } +} diff --git a/src/opnsense/mvc/app/controllers/OPNsense/Interfaces/AssignmentController.php b/src/opnsense/mvc/app/controllers/OPNsense/Interfaces/AssignmentController.php new file mode 100644 index 0000000000..973b3b5475 --- /dev/null +++ b/src/opnsense/mvc/app/controllers/OPNsense/Interfaces/AssignmentController.php @@ -0,0 +1,40 @@ +view->pick('OPNsense/Interface/assignment'); + + $this->view->formDialogAssignment = $this->getForm("dialogAssignment"); + $this->view->formGridAssignment = $this->getFormGrid("dialogAssignment"); + } +} diff --git a/src/opnsense/mvc/app/controllers/OPNsense/Interfaces/forms/dialogAssignment.xml b/src/opnsense/mvc/app/controllers/OPNsense/Interfaces/forms/dialogAssignment.xml new file mode 100644 index 0000000000..00d8a9b20f --- /dev/null +++ b/src/opnsense/mvc/app/controllers/OPNsense/Interfaces/forms/dialogAssignment.xml @@ -0,0 +1,20 @@ +
diff --git a/src/opnsense/mvc/app/models/OPNsense/Interfaces/Assignment.php b/src/opnsense/mvc/app/models/OPNsense/Interfaces/Assignment.php new file mode 100644 index 0000000000..1357f4cf78 --- /dev/null +++ b/src/opnsense/mvc/app/models/OPNsense/Interfaces/Assignment.php @@ -0,0 +1,50 @@ +object()->interfaces->children() as $key => $intf) { + $node = $this->interface->add($key); + $node->descr = (string)$intf->descr; + $node->identifier = $key; + $node->if = (string)$intf->if; + } + } +} diff --git a/src/opnsense/mvc/app/models/OPNsense/Interfaces/Assignment.xml b/src/opnsense/mvc/app/models/OPNsense/Interfaces/Assignment.xml new file mode 100644 index 0000000000..1510e59dff --- /dev/null +++ b/src/opnsense/mvc/app/models/OPNsense/Interfaces/Assignment.xml @@ -0,0 +1,15 @@ +