diff --git a/modules/servers/solusvmpro/js/get_user_data.js b/modules/servers/solusvmpro/js/get_user_data.js index b9cbbf4..3bb8f3d 100644 --- a/modules/servers/solusvmpro/js/get_user_data.js +++ b/modules/servers/solusvmpro/js/get_user_data.js @@ -47,7 +47,8 @@ $(function () { $("#controlpanellink").attr("onclick", "window.open('" + data.controlpanellink + "','_blank')"); } - var optionsIds = ["displayreboot", "displayshutdown", "displayboot", "displayconsole", "displayhtml5console", "displayvnc", "displayrootpassword", "displayhostname", "displayvncpassword", "displayrescuemode", "displaypanelbutton", "displayclientkeyauth"]; + var optionsIds = ["displayreboot", "displayshutdown", "displayboot", "displayconsole", "displayhtml5console", "displayvnc", "displayrootpassword", "displayhostname", "displayvncpassword", "displayrescuemode", "displaypanelbutton", "displayclientkeyauth", "displaytunenable", "displaytundisable"]; + var showOptions = false; optionsIds.forEach(function (v) { if (data.hasOwnProperty(v)) { diff --git a/modules/servers/solusvmpro/lang/english.php b/modules/servers/solusvmpro/lang/english.php index 8aa58a9..bdac733 100644 --- a/modules/servers/solusvmpro/lang/english.php +++ b/modules/servers/solusvmpro/lang/english.php @@ -4,7 +4,6 @@ die( "This file cannot be accessed directly" ); } - $_LANG['solusvmpro_reboot'] = 'Reboot'; $_LANG['solusvmpro_boot'] = 'Boot'; $_LANG['solusvmpro_shutdown'] = 'Shutdown'; @@ -103,4 +102,5 @@ $_LANG['solusvmpro_port'] = 'Port'; $_LANG['solusvmpro_rescueenabled'] = 'Enabled - Rescue mode can take several minutes before it becomes accessible on the network'; $_LANG['solusvmpro_rescuedisabled'] = 'Disabled - The server is now rebooting into the original system'; - +$_LANG['solusvmpro_tuntap_enable'] = 'Enable TUN/TAP'; +$_LANG['solusvmpro_tuntap_disable'] = 'Disable TUN/TAP'; diff --git a/modules/servers/solusvmpro/lib/SolusVM.php b/modules/servers/solusvmpro/lib/SolusVM.php index 7545305..a4e5122 100644 --- a/modules/servers/solusvmpro/lib/SolusVM.php +++ b/modules/servers/solusvmpro/lib/SolusVM.php @@ -823,6 +823,14 @@ public function clientAreaCalculations( $result ) { } $cparams["displaygraphs"] = 1; } + + if ( $this->getExtData( "tun-enable" ) != "disable" ) { + $cparams["displaytunenable"] = 1; + } + + if ( $this->getExtData( "tun-disable" ) != "disable" ) { + $cparams["displaytundisable"] = 1; + } return $cparams; } diff --git a/modules/servers/solusvmpro/solusvmpro.php b/modules/servers/solusvmpro/solusvmpro.php index 7ef383e..9e2d458 100644 --- a/modules/servers/solusvmpro/solusvmpro.php +++ b/modules/servers/solusvmpro/solusvmpro.php @@ -537,6 +537,8 @@ function solusvmpro_AdminCustomButtonArray() { $_LANG["solusvmpro_reboot"] => "reboot", $_LANG["solusvmpro_shutdown"] => "shutdown", $_LANG["solusvmpro_boot"] => "boot", + $_LANG["solusvmpro_tuntap_enable"] => "tuntap_enable", + $_LANG["solusvmpro_tuntap_disable"] => "tuntap_disable", ); } @@ -547,6 +549,8 @@ function solusvmpro_ClientAreaCustomButtonArray() { $_LANG["solusvmpro_reboot"] => "reboot", $_LANG["solusvmpro_shutdown"] => "shutdown", $_LANG["solusvmpro_boot"] => "boot", + $_LANG["solusvmpro_tuntap_enable"] => "tuntap_enable", + $_LANG["solusvmpro_tuntap_disable"] => "tuntap_disable", ); } @@ -655,6 +659,76 @@ function solusvmpro_shutdown( $params ) { } } +################################################################################ +### TUN/TAP Enable function ### +################################################################################ + +function solusvmpro_tuntap_enable( $params ) { + try { + $solusvm = new SolusVM( $params ); + $customField = $solusvm->getParam( "customfields" ); + + ## The call string for the connection fuction + $callArray = array( "vserverid" => $customField["vserverid"] ); + + $solusvm->apiCall( 'vserver-tun-enable', $callArray ); + + if ( $solusvm->result["status"] == "success" ) { + $result = "success"; + } else { + $result = (string) $solusvm->result["statusmsg"]; + } + + return $result; + } catch ( Exception $e ) { + // Record the error in WHMCS's module log. + logModuleCall( + 'shutdown', + __FUNCTION__, + $params, + $e->getMessage(), + $e->getTraceAsString() + ); + + return $e->getMessage(); + } +} + +################################################################################ +### TUN/TAP Disable function ### +################################################################################ + +function solusvmpro_tuntap_disable( $params ) { + try { + $solusvm = new SolusVM( $params ); + $customField = $solusvm->getParam( "customfields" ); + + ## The call string for the connection fuction + $callArray = array( "vserverid" => $customField["vserverid"] ); + + $solusvm->apiCall( 'vserver-tun-disable', $callArray ); + + if ( $solusvm->result["status"] == "success" ) { + $result = "success"; + } else { + $result = (string) $solusvm->result["statusmsg"]; + } + + return $result; + } catch ( Exception $e ) { + // Record the error in WHMCS's module log. + logModuleCall( + 'shutdown', + __FUNCTION__, + $params, + $e->getMessage(), + $e->getTraceAsString() + ); + + return $e->getMessage(); + } +} + ################################################################################ ### Upgrade / Downgrade account function ### diff --git a/modules/servers/solusvmpro/templates/clientareaBootstrap.tpl b/modules/servers/solusvmpro/templates/clientareaBootstrap.tpl index b3f1c42..92d309c 100644 --- a/modules/servers/solusvmpro/templates/clientareaBootstrap.tpl +++ b/modules/servers/solusvmpro/templates/clientareaBootstrap.tpl @@ -207,6 +207,18 @@ value="{$LANG.solusvmpro_manage}">
+ +