From dc4cd4535d4987249d8fb3c9756f7ef87c9cd097 Mon Sep 17 00:00:00 2001
From: Monviech <79600909+Monviech@users.noreply.github.com>
Date: Tue, 18 Feb 2025 15:48:08 +0100
Subject: [PATCH] vpn/wireguard: Integrate base_bootgrid_table and
base_apply_button (#8313)
* vpn/wireguard: Integrate layout_partials/base_bootgrid_table and layout_partials/base_apply_button
* vpn/wireguard: Change spot of base_form, add formatter for Instance so that wg0,wg1 etc is displayed again in the grid as before the change
* Fix whitespace
---
.../Wireguard/Api/ClientController.php | 7 +-
.../Wireguard/Api/ServerController.php | 6 +-
.../OPNsense/Wireguard/GeneralController.php | 5 +
.../forms/dialogEditWireguardClient.xml | 14 +++
.../forms/dialogEditWireguardServer.xml | 31 ++++++
.../app/views/OPNsense/Wireguard/general.volt | 94 ++++---------------
6 files changed, 72 insertions(+), 85 deletions(-)
diff --git a/src/opnsense/mvc/app/controllers/OPNsense/Wireguard/Api/ClientController.php b/src/opnsense/mvc/app/controllers/OPNsense/Wireguard/Api/ClientController.php
index dd96c4c7c..20b68e303 100644
--- a/src/opnsense/mvc/app/controllers/OPNsense/Wireguard/Api/ClientController.php
+++ b/src/opnsense/mvc/app/controllers/OPNsense/Wireguard/Api/ClientController.php
@@ -67,12 +67,7 @@ class ClientController extends ApiMutableModelControllerBase
return empty($servers) || array_intersect(explode(',', $record->servers), $servers);
};
- return $this->searchBase(
- 'clients.client',
- ["enabled", "name", "pubkey", "tunneladdress", "serveraddress", "serverport", "servers"],
- null,
- $filter_funct
- );
+ return $this->searchBase('clients.client', null, null, $filter_funct);
}
public function getClientAction($uuid = null)
diff --git a/src/opnsense/mvc/app/controllers/OPNsense/Wireguard/Api/ServerController.php b/src/opnsense/mvc/app/controllers/OPNsense/Wireguard/Api/ServerController.php
index c810dd2ae..67acc20e1 100644
--- a/src/opnsense/mvc/app/controllers/OPNsense/Wireguard/Api/ServerController.php
+++ b/src/opnsense/mvc/app/controllers/OPNsense/Wireguard/Api/ServerController.php
@@ -44,11 +44,7 @@ class ServerController extends ApiMutableModelControllerBase
public function searchServerAction()
{
- $search = $this->searchBase(
- 'servers.server',
- ["enabled", "instance", "peers", "name", "networks", "pubkey", "port", "tunneladdress", 'interface']
- );
- return $search;
+ return $this->searchBase('servers.server');
}
public function getServerAction($uuid = null)
diff --git a/src/opnsense/mvc/app/controllers/OPNsense/Wireguard/GeneralController.php b/src/opnsense/mvc/app/controllers/OPNsense/Wireguard/GeneralController.php
index 4e2f96dea..a6223792a 100644
--- a/src/opnsense/mvc/app/controllers/OPNsense/Wireguard/GeneralController.php
+++ b/src/opnsense/mvc/app/controllers/OPNsense/Wireguard/GeneralController.php
@@ -41,8 +41,13 @@ class GeneralController extends \OPNsense\Base\IndexController
public function indexAction()
{
$this->view->generalForm = $this->getForm("general");
+
$this->view->formDialogEditWireguardClient = $this->getForm("dialogEditWireguardClient");
+ $this->view->formGridWireguardClient = $this->getFormGrid("dialogEditWireguardClient");
+
$this->view->formDialogEditWireguardServer = $this->getForm("dialogEditWireguardServer");
+ $this->view->formGridWireguardServer = $this->getFormGrid("dialogEditWireguardServer");
+
$this->view->formDialogConfigBuilder = $this->getForm("dialogConfigBuilder");
$this->view->pick('OPNsense/Wireguard/general');
}
diff --git a/src/opnsense/mvc/app/controllers/OPNsense/Wireguard/forms/dialogEditWireguardClient.xml b/src/opnsense/mvc/app/controllers/OPNsense/Wireguard/forms/dialogEditWireguardClient.xml
index 71e6f5cec..8afba7aa4 100644
--- a/src/opnsense/mvc/app/controllers/OPNsense/Wireguard/forms/dialogEditWireguardClient.xml
+++ b/src/opnsense/mvc/app/controllers/OPNsense/Wireguard/forms/dialogEditWireguardClient.xml
@@ -4,6 +4,11 @@
checkboxThis will enable or disable the peer.
+
+ 6em
+ boolean
+ rowtoggle
+ client.name
@@ -16,12 +21,18 @@
textPublic key of this peer. You can generate the key using the private key piped to "wg pubkey".
+
+ false
+ client.psktextShared secret (PSK) for this peer. You can generate a key using "wg genpsk".
+
+ false
+ client.tunneladdress
@@ -54,5 +65,8 @@
textSet persistent keepalive interval in seconds.
+
+ false
+
diff --git a/src/opnsense/mvc/app/controllers/OPNsense/Wireguard/forms/dialogEditWireguardServer.xml b/src/opnsense/mvc/app/controllers/OPNsense/Wireguard/forms/dialogEditWireguardServer.xml
index 3b23f056f..83ba1ec26 100644
--- a/src/opnsense/mvc/app/controllers/OPNsense/Wireguard/forms/dialogEditWireguardServer.xml
+++ b/src/opnsense/mvc/app/controllers/OPNsense/Wireguard/forms/dialogEditWireguardServer.xml
@@ -4,6 +4,11 @@
checkboxThis will enable or disable the instance.
+
+ 6em
+ boolean
+ rowtoggle
+ server.name
@@ -16,18 +21,27 @@
infoThis is the instance number to give the WireGuard device a unique name (wgX).
+
+ wgformatter
+ server.pubkeytextPublic key of this instance. You can specify your own one, or a key will be generated after saving.
+
+ false
+ server.privkeytextPrivate key of this instance. You can specify your own one, or a key will be generated after saving. Please keep this key safe.
+
+ true
+ server.port
@@ -41,6 +55,9 @@
texttrueSet a specific device MTU for this instance.
+
+ false
+ server.dns
@@ -50,6 +67,9 @@
truetrueSet specific DNS servers for this instance. Use with care.
+
+ false
+ server.tunneladdress
@@ -64,6 +84,9 @@
dropdownThe CARP VHID to depend on. When this virtual address is not in master state, then the instance will be shutdown.
+
+ false
+ server.peers
@@ -76,6 +99,11 @@
checkboxThis will prevent installing routes. Usually you only enable this to do own routing decisions via a local gateway and gateway rules.
+
+ false
+ boolean
+ boolean
+ server.gateway
@@ -83,5 +111,8 @@
texttrueSet the gateway IP here when using "Disable routes" feature. You also have to add this as a system gateway.
+
+ false
+
diff --git a/src/opnsense/mvc/app/views/OPNsense/Wireguard/general.volt b/src/opnsense/mvc/app/views/OPNsense/Wireguard/general.volt
index bb41fa412..4fb1fb9dd 100644
--- a/src/opnsense/mvc/app/views/OPNsense/Wireguard/general.volt
+++ b/src/opnsense/mvc/app/views/OPNsense/Wireguard/general.volt
@@ -27,13 +27,13 @@