diff --git a/install/0.9.7/rhel/whmcs-module.php b/install/0.9.7/rhel/whmcs-module.php new file mode 100644 index 00000000..b92de08f --- /dev/null +++ b/install/0.9.7/rhel/whmcs-module.php @@ -0,0 +1,340 @@ + array( "Type" => "text", "Default" => "default"), + "SSH Access" => array( "Type" => "yesno", "Description" => "Tick to grant access", ), + "IP Address (optional)" => array( "Type" => "text" ), + ); + return $configarray; + +} + +function vesta_CreateAccount($params) { + + // Execute only if there is assigned server + if ($params["server"] == 1) { + + // Prepare variables + $postvars = array( + 'user' => $params["serverusername"], + 'password' => $params["serverpassword"], + 'hash' => $params["serveraccesshash"], + 'cmd' => 'v-add-user', + 'arg1' => $params["username"], + 'arg2' => $params["password"], + 'arg3' => $params["clientsdetails"]["email"], + 'arg4' => $params["configoption1"], + 'arg5' => $params["clientsdetails"]["firstname"], + 'arg6' => $params["clientsdetails"]["lastname"], + ); + $postdata = http_build_query($postvars); + + // Create user account + $curl = curl_init(); + curl_setopt($curl, CURLOPT_URL, 'https://' . $params["serverhostname"] . ':8083/api/'); + curl_setopt($curl, CURLOPT_RETURNTRANSFER,true); + curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); + curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false); + curl_setopt($curl, CURLOPT_POST, true); + curl_setopt($curl, CURLOPT_POSTFIELDS, $postdata); + $answer = curl_exec($curl); + + // Enable ssh access + if(($answer == 'OK') && ($params["configoption2"] == 'on')) { + $postvars = array( + 'user' => $params["serverusername"], + 'password' => $params["serverpassword"], + 'hash' => $params["serveraccesshash"], + 'cmd' => 'v-change-user-shell', + 'arg1' => $params["username"], + 'arg2' => 'bash' + ); + $postdata = http_build_query($postvars); + $curl = curl_init(); + curl_setopt($curl, CURLOPT_URL, 'https://' . $params["serverhostname"] . ':8083/api/'); + curl_setopt($curl, CURLOPT_RETURNTRANSFER,true); + curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); + curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false); + curl_setopt($curl, CURLOPT_POST, true); + curl_setopt($curl, CURLOPT_POSTFIELDS, $postdata); + $answer = curl_exec($curl); + } + + // Add domain + if(($answer == 'OK') && (!empty($params["domain"]))) { + $postvars = array( + 'user' => $params["serverusername"], + 'password' => $params["serverpassword"], + 'hash' => $params["serveraccesshash"], + 'cmd' => 'v-add-domain', + 'arg1' => $params["username"], + 'arg2' => $params["domain"], + 'arg3' => $params["configoption3"], + ); + $postdata = http_build_query($postvars); + $curl = curl_init(); + curl_setopt($curl, CURLOPT_URL, 'https://' . $params["serverhostname"] . ':8083/api/'); + curl_setopt($curl, CURLOPT_RETURNTRANSFER,true); + curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); + curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false); + curl_setopt($curl, CURLOPT_POST, true); + curl_setopt($curl, CURLOPT_POSTFIELDS, $postdata); + $answer = curl_exec($curl); + } + } + + if($answer == 'OK') { + $result = "success"; + } else { + $result = $answer; + } + return $result; + +} + +function vesta_TerminateAccount($params) { + + // Execute only if there is assigned server + if ($params["server"] == 1) { + + // Prepare variables + $postvars = array( + 'user' => $params["serverusername"], + 'password' => $params["serverpassword"], + 'hash' => $params["serveraccesshash"], + 'cmd' => 'v-delete-user', + 'arg1' => $params["username"] + ); + $postdata = http_build_query($postvars); + + // Delete user account + $curl = curl_init(); + curl_setopt($curl, CURLOPT_URL, 'https://' . $params["serverhostname"] . ':8083/api/'); + curl_setopt($curl, CURLOPT_RETURNTRANSFER,true); + curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); + curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false); + curl_setopt($curl, CURLOPT_POST, true); + curl_setopt($curl, CURLOPT_POSTFIELDS, $postdata); + $answer = curl_exec($curl); + } + + if($answer == 'OK') { + $result = "success"; + } else { + $result = $answer; + } + + return $result; + +} + +function vesta_SuspendAccount($params) { + + // Execute only if there is assigned server + if ($params["server"] == 1) { + + // Prepare variables + $postvars = array( + 'user' => $params["serverusername"], + 'password' => $params["serverpassword"], + 'hash' => $params["serveraccesshash"], + 'cmd' => 'v-suspend-user', + 'arg1' => $params["username"] + ); + $postdata = http_build_query($postvars); + + // Susupend user account + $curl = curl_init(); + curl_setopt($curl, CURLOPT_URL, 'https://' . $params["serverhostname"] . ':8083/api/'); + curl_setopt($curl, CURLOPT_RETURNTRANSFER,true); + curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); + curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false); + curl_setopt($curl, CURLOPT_POST, true); + curl_setopt($curl, CURLOPT_POSTFIELDS, $postdata); + $answer = curl_exec($curl); + } + + if($answer == 'OK') { + $result = "success"; + } else { + $result = $answer; + } + +} + +function vesta_UnsuspendAccount($params) { + + // Execute only if there is assigned server + if ($params["server"] == 1) { + + // Prepare variables + $postvars = array( + 'user' => $params["serverusername"], + 'password' => $params["serverpassword"], + 'hash' => $params["serveraccesshash"], + 'cmd' => 'v-unsuspend-user', + 'arg1' => $params["username"] + ); + $postdata = http_build_query($postvars); + + // Unsusupend user account + $curl = curl_init(); + curl_setopt($curl, CURLOPT_URL, 'https://' . $params["serverhostname"] . ':8083/api/'); + curl_setopt($curl, CURLOPT_RETURNTRANSFER,true); + curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); + curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false); + curl_setopt($curl, CURLOPT_POST, true); + curl_setopt($curl, CURLOPT_POSTFIELDS, $postdata); + $answer = curl_exec($curl); + } + + if($answer == 'OK') { + $result = "success"; + } else { + $result = $answer; + } + +} + +function vesta_ChangePassword($params) { + + // Execute only if there is assigned server + if ($params["server"] == 1) { + + // Prepare variables + $postvars = array( + 'user' => $params["serverusername"], + 'password' => $params["serverpassword"], + 'hash' => $params["serveraccesshash"], + 'cmd' => 'v-change-user-password', + 'arg1' => $params["username"], + 'arg2' => $params["password"] + ); + $postdata = http_build_query($postvars); + + // Change user package + $curl = curl_init(); + curl_setopt($curl, CURLOPT_URL, 'https://' . $params["serverhostname"] . ':8083/api/'); + curl_setopt($curl, CURLOPT_RETURNTRANSFER,true); + curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); + curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false); + curl_setopt($curl, CURLOPT_POST, true); + curl_setopt($curl, CURLOPT_POSTFIELDS, $postdata); + $answer = curl_exec($curl); + } + + if($answer == 'OK') { + $result = "success"; + } else { + $result = $answer; + } + return $result; + +} + +function vesta_ChangePackage($params) { + + // Execute only if there is assigned server + if ($params["server"] == 1) { + + // Prepare variables + $postvars = array( + 'user' => $params["serverusername"], + 'password' => $params["serverpassword"], + 'hash' => $params["serveraccesshash"], + 'cmd' => 'v-change-user-package', + 'arg1' => $params["username"], + 'arg2' => $params["configoption1"] + ); + $postdata = http_build_query($postvars); + + // Change user package + $curl = curl_init(); + curl_setopt($curl, CURLOPT_URL, 'https://' . $params["serverhostname"] . ':8083/api/'); + curl_setopt($curl, CURLOPT_RETURNTRANSFER,true); + curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); + curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false); + curl_setopt($curl, CURLOPT_POST, true); + curl_setopt($curl, CURLOPT_POSTFIELDS, $postdata); + $answer = curl_exec($curl); + } + + if($answer == 'OK') { + $result = "success"; + } else { + $result = $answer; + } + return $result; + +} + +function vesta_ClientArea($params) { + + $code = '
+ + + + +
'; + return $code; + +} + +function vesta_AdminLink($params) { + + $code = '
+ + + +
'; + return $code; + +} + +function vesta_LoginLink($params) { + + echo "control panel"; + +} + +function vesta_UsageUpdate($params) { + + // Prepare variables + $postvars = array( + 'user' => $params["serverusername"], + 'password' => $params["serverpassword"], + 'hash' => $params["serveraccesshash"], + 'cmd' => 'v-list-users', + 'arg1' => 'json' + ); + $postdata = http_build_query($postvars); + + // Get user stats + $curl = curl_init(); + curl_setopt($curl, CURLOPT_URL, 'https://' . $params["serverhostname"] . ':8083/api/'); + curl_setopt($curl, CURLOPT_RETURNTRANSFER,true); + curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); + curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false); + curl_setopt($curl, CURLOPT_POST, true); + curl_setopt($curl, CURLOPT_POSTFIELDS, $postdata); + $answer = curl_exec($curl); + + // Decode json data + $results = json_decode($answer, true); + + // Loop through results and update DB + foreach ($results AS $user=>$values) { + update_query("tblhosting",array( + "diskusage"=>$values['U_DISK'], + "disklimit"=>$values['DISK_QUOTA'], + "bwusage"=>$values['U_BANDWIDTH'], + "bwlimit"=>$values['BANDWIDTH'], + "lastupdate"=>"now()", + ),array("server"=>$params['serverid'], "username"=>$user)); + } + +} + +?>