diff --git a/net/wireguard/src/opnsense/mvc/app/controllers/OPNsense/Wireguard/Api/ClientController.php b/net/wireguard/src/opnsense/mvc/app/controllers/OPNsense/Wireguard/Api/ClientController.php index 3ebd24dfd..ae7d84660 100644 --- a/net/wireguard/src/opnsense/mvc/app/controllers/OPNsense/Wireguard/Api/ClientController.php +++ b/net/wireguard/src/opnsense/mvc/app/controllers/OPNsense/Wireguard/Api/ClientController.php @@ -41,23 +41,28 @@ class ClientController extends ApiMutableModelControllerBase { return $this->searchBase('clients.client', array("enabled", "name", "pubkey", "tunneladdress", "serveraddress", "serverport")); } + public function getClientAction($uuid = null) { $this->sessionClose(); return $this->getBase('client', 'clients.client', $uuid); } + public function addClientAction() { return $this->addBase('client', 'clients.client'); } + public function delClientAction($uuid) { return $this->delBase('clients.client', $uuid); } + public function setClientAction($uuid) { return $this->setBase('client', 'clients.client', $uuid); } + public function toggleClientAction($uuid) { return $this->toggleBase('clients.client', $uuid); diff --git a/net/wireguard/src/opnsense/mvc/app/controllers/OPNsense/Wireguard/Api/ServerController.php b/net/wireguard/src/opnsense/mvc/app/controllers/OPNsense/Wireguard/Api/ServerController.php index 78e653c9e..5bf57767a 100644 --- a/net/wireguard/src/opnsense/mvc/app/controllers/OPNsense/Wireguard/Api/ServerController.php +++ b/net/wireguard/src/opnsense/mvc/app/controllers/OPNsense/Wireguard/Api/ServerController.php @@ -38,13 +38,20 @@ class ServerController extends ApiMutableModelControllerBase public function searchServerAction() { - return $this->searchBase('servers.server', array("enabled", "name", "networks", "pubkey", "port", "tunneladdress")); + $search = $this->searchBase('servers.server', array("enabled", "instance", "peers", "name", "networks", "pubkey", "port", "tunneladdress")); + // prepend "wg" to all instance IDs to use as interface name + foreach ($search["rows"] as $key => $server) { + $search["rows"][$key]["interface"] = "wg" . $server["instance"]; + } + return $search; } + public function getServerAction($uuid = null) { $this->sessionClose(); return $this->getBase('server', 'servers.server', $uuid); } + public function addServerAction($uuid = null) { if ($this->request->isPost() && $this->request->hasPost("server")) { @@ -66,10 +73,12 @@ class ServerController extends ApiMutableModelControllerBase } return array("result" => "failed"); } + public function delServerAction($uuid) { return $this->delBase('servers.server', $uuid); } + public function setServerAction($uuid = null) { if ($this->request->isPost() && $this->request->hasPost("server")) { @@ -91,6 +100,7 @@ class ServerController extends ApiMutableModelControllerBase } return array("result" => "failed"); } + public function toggleServerAction($uuid) { return $this->toggleBase('servers.server', $uuid); diff --git a/net/wireguard/src/opnsense/mvc/app/controllers/OPNsense/Wireguard/forms/dialogEditWireguardClient.xml b/net/wireguard/src/opnsense/mvc/app/controllers/OPNsense/Wireguard/forms/dialogEditWireguardClient.xml index 7cfca02ce..231e9c692 100644 --- a/net/wireguard/src/opnsense/mvc/app/controllers/OPNsense/Wireguard/forms/dialogEditWireguardClient.xml +++ b/net/wireguard/src/opnsense/mvc/app/controllers/OPNsense/Wireguard/forms/dialogEditWireguardClient.xml @@ -21,7 +21,7 @@ client.psk text - Shared secret (PSK) for this peer. + Shared secret (PSK) for this peer. You can generate a key using "wg genpsk" on a client with WireGuard installed. client.tunneladdress @@ -45,8 +45,8 @@ client.keepalive - + text - Set persistent keepalive interval. + Set persistent keepalive interval in seconds. diff --git a/net/wireguard/src/opnsense/mvc/app/controllers/OPNsense/Wireguard/forms/dialogEditWireguardServer.xml b/net/wireguard/src/opnsense/mvc/app/controllers/OPNsense/Wireguard/forms/dialogEditWireguardServer.xml index 3667908a8..eff1f9504 100644 --- a/net/wireguard/src/opnsense/mvc/app/controllers/OPNsense/Wireguard/forms/dialogEditWireguardServer.xml +++ b/net/wireguard/src/opnsense/mvc/app/controllers/OPNsense/Wireguard/forms/dialogEditWireguardServer.xml @@ -15,19 +15,19 @@ server.instance info - Set the instance number needed for interface calculation. It has to be unique for each instance. + This is the instance number to give the wg interface a unique name (wgX). server.pubkey text - Public key of this instance. After saving you will see here your public key. + Public key of this instance. You can specify your own one, or a key will be generated after saving. server.privkey text - Private key of this instance. After saving you will see here your private key, please keep it safe. + Private key of this instance. You can specify your own one, or a key will be generated after saving. Please keep this key safe. server.port diff --git a/net/wireguard/src/opnsense/mvc/app/views/OPNsense/Wireguard/general.volt b/net/wireguard/src/opnsense/mvc/app/views/OPNsense/Wireguard/general.volt index 60c1c6c39..8b0accd2d 100644 --- a/net/wireguard/src/opnsense/mvc/app/views/OPNsense/Wireguard/general.volt +++ b/net/wireguard/src/opnsense/mvc/app/views/OPNsense/Wireguard/general.volt @@ -30,7 +30,7 @@
  • {{ lang._('General') }}
  • {{ lang._('Local') }}
  • {{ lang._('Endpoints') }}
  • -
  • {{ lang._('List Configuration') }}
  • +
  • {{ lang._('Status') }}
  • {{ lang._('Handshakes') }}
  • @@ -51,6 +51,7 @@ {{ lang._('Enabled') }} {{ lang._('Name') }} {{ lang._('Endpoint Address') }} + {{ lang._('Endpoint Port') }} {{ lang._('Allowed IPs') }} {{ lang._('ID') }} {{ lang._('Commands') }} @@ -60,7 +61,7 @@ - + @@ -79,8 +80,10 @@ {{ lang._('Enabled') }} {{ lang._('Name') }} - {{ lang._('Port') }} + {{ lang._('Interface') }} {{ lang._('Tunnel Address') }} + {{ lang._('Port') }} + {{ lang._('Endpoints') }} {{ lang._('ID') }} {{ lang._('Commands') }} @@ -89,7 +92,7 @@ - + @@ -136,7 +139,8 @@ $( document ).ready(function() { }); $("#grid-clients").UIBootgrid( - { 'search':'/api/wireguard/client/searchClient', + { + 'search':'/api/wireguard/client/searchClient', 'get':'/api/wireguard/client/getClient/', 'set':'/api/wireguard/client/setClient/', 'add':'/api/wireguard/client/addClient/', @@ -146,7 +150,8 @@ $( document ).ready(function() { ); $("#grid-servers").UIBootgrid( - { 'search':'/api/wireguard/server/searchServer', + { + 'search':'/api/wireguard/server/searchServer', 'get':'/api/wireguard/server/getServer/', 'set':'/api/wireguard/server/setServer/', 'add':'/api/wireguard/server/addServer/', @@ -155,6 +160,10 @@ $( document ).ready(function() { } ); + // Call update funcs once when page loaded + update_showconf(); + update_showhandshake(); + // Call function update_neighbor with a auto-refresh of 5 seconds setInterval(update_showconf, 5000); setInterval(update_showhandshake, 5000);