'CentOS Web Panel Provisioning',
'APIVersion' => '1.2',
'DefaultNonSSLPort' => '2031',
'DefaultSSLPort' => '2031',
'RequiresServer' => true,
'ServiceSingleSignOnLabel' => 'Login to CWP7',
'AdminSingleSignOnLabel' => 'Login to CWP7 Admin'
);
}
function cwp7_Testconnection($params) {
$cwp7 = new cwp7_Admin($params['serverhostname'], $params['serveraccesshash']);
$response = $cwp7->getServerType();
if($response['status'] == 'OK') {
return array(
'success' => true,
'error' => '',
);
}
return array(
'success' => false,
'error' => $response['msj'],
);
}
function cwp7_ConfigOptions() {
$whmcs = App::self();
$serverGroupID = $whmcs->get_req_var('servergroup');
$serverIDObj = Capsule::table('tblservergroupsrel')
->select('serverid')
->where('groupid', '=', $serverGroupID)
->get();
$serverIDs = array();
foreach($serverIDObj as $serverID) {
array_push($serverIDs, $serverID->serverid);
}
$server = Capsule::table('tblservers')
->select('hostname', 'accesshash')
->where('id', $serverIDs)
->where('active', '=', 1)
->first();
$cwp7 = new cwp7_Admin($server->hostname, $server->accesshash);
$cwp7Packages = $cwp7->getPackages();
if($cwp7Packages['status'] != 'OK') {
logModuleCall(
'cwp7',
__FUNCTION__,
$cwp7Packages['status'],
'Could not fetch packages',
$cwp7Packages['msj']
);
return false;
}
$cwp7PackageNames = array();
foreach($cwp7Packages['msj'] as $cwp7Package) {
array_push($cwp7PackageNames, $cwp7Package['package_name']);
}
$configOptions = array();
$configOptions['package'] = array(
'FriendlyName' => 'CWP7 Package',
'Type' => 'dropdown',
'Options' => implode(',', $cwp7PackageNames),
'Description' => 'Select CWP7 Package',
);
$configOptions['inode'] = array( "Type" => "text" , "Description" => "Max of inode", "Default" => "0",);
$configOptions['nofile'] = array( "Type" => "text", "Description" => "Max of nofile", "Default" => "100",);
$configOptions['nproc'] = array( "Type" => "text" , "Description" => "Nproc limit - 40 suggested", "Default" => "40",);
return $configOptions;
}
function cwp7_CreateAccount($params) {
$username = strtolower(substr($params['clientsdetails']['firstname'],0,2) . substr($params['clientsdetails']['lastname'],0,3)) . $params['serviceid'];
$userdomain = $username . '.local';
try {
Capsule::table('tblhosting')
->where('id', '=', $params['serviceid'])
->update(
array(
'username' => $username,
'domain' => $userdomain,
)
);
} catch (\Exception $e) {
logModuleCall(
'cwp7',
__FUNCTION__,
$params,
'Error: could save username & domain in database',
$e->getMessage()
);
return 'Error: could save username & password in database';
}
if ($params["server"] == 1) {
$data = array(
'package' => $params['configoption1'],
'domain' => $userdomain,
'user' => $username,
'pass' => $params['password'],
'email' => $params['clientsdetails']['email'],
'inode' => $params["configoption2"],
'nofile' => $params["configoption3"],
'nproc' => $params["configoption4"],
'server_ips'=>$params["serverip"]
);
$cwp7 = new cwp7_Admin($params['serverhostname'], $params['serveraccesshash']);
$response = $cwp7->createAccount($data);
}
if($response['status'] != 'OK') {
return 'Error: ' . $response['msj'];
}
return 'success';
}
function cwp7_TerminateAccount($params) {
$cwp7 = new cwp7_Admin($params['serverhostname'], $params['serveraccesshash']);
$response = $cwp7->deleteAccount(array('user' => $params['username'], 'email' => $params['clientsdetails']['email']));
if($response['status'] != 'OK') {
return 'Error: ' . $response['msj'];
}
return 'success';
}
function cwp7_SuspendAccount($params) {
$cwp7 = new cwp7_Admin($params['serverhostname'], $params['serveraccesshash']);
$response = $cwp7->suspendAccount($params['username']);
if($response['status'] != 'OK') {
return 'Error: ' . $response['msj'];
}
return 'success';
}
function cwp7_UnsuspendAccount($params) {
$cwp7 = new cwp7_Admin($params['serverhostname'], $params['serveraccesshash']);
$response = $cwp7->unsuspendAccount($params['username']);
if($response['status'] != 'OK') {
return 'Error: ' . $response['msj'];
}
return 'success';
}
function cwp7_ClientArea($params){
/* $postvars = array('key' => $params["serveraccesshash"], 'action' => 'list', 'user' => $params["username"], 'timer' => 5);
$postdata = http_build_query($postvars);
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, 'https://' . $params["serverhostname"] . ':2304/v1/user_session');
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);
$arry = (json_decode($answer, true)); //die;F
$link = $arry['msj']['details'];
$linkautologin = $link[0]['url'];
logModuleCall('cwpwhmcs', 'cwp7_LoginLink', 'https://' . $params["serverhostname"] . ':2304/v1/user_session' . $postdata, $answer);
return "Login to Control Panel"; */
$clientInfo = array('moduleclientarea' => '1');
return array(
'tabOverviewReplacementTemplate' => 'clientarea',
'vars' => $clientInfo,
);
}
function cwp7_AdminLink($params) {
$link = 'Login to Control Panel';
return $link;
}
function cwp7_LoginLink($params) {
/* $postvars = array('key' => $params["serveraccesshash"],'action' => 'list','user' => $params["username"],'timer'=>5);
$postdata = http_build_query($postvars);
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, 'https://' . $params["serverhostname"] . ':2304/v1/user_session');
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);
$arry=(json_decode($answer,true)); //die;F
$link=$arry['msj']['details'];
$linkautologin=$link[0]['url'];
logModuleCall('cwpwhmcs','cwp7_LoginLink','https://' . $params["serverhostname"] . ':2304/v1/user_session'.$postdata,$answer); */
$cwp7 = new cwp7_Admin($params['serverhostname'], $params['serveraccesshash']);
$response = $cwp7->getLoginLink($params['username']);
if($response['status'] == 'OK') {
$link=$response['msj']['details'];
$linkautologin=$link[0]['url'];
echo "Control Panel";
}
}
function cwp7_ChangePassword($params){
$cwp7 = new cwp7_Admin($params['serverhostname'], $params['serveraccesshash']);
$response = $cwp7->changePass(array('user' => $params['username'], 'password' => $params['password']));
if($response['status'] != 'OK') {
return 'Error: ' . $response['msj'];
}
return 'success';
}
function cwp7_ChangePackage($params){
$cwp7 = new cwp7_Admin($params['serverhostname'], $params['serveraccesshash']);
$response = $cwp7->modifyAccount(array('user' => $params['username'], 'email' => $params['clientdetails']['email'], 'package' => $params['configoption1']));
if($response['status'] != 'OK') {
return 'Error: ' . $response['msj'];
}
return 'success';
}
function cwp7_UsageUpdate($params) {
$cwp7 = new cwp7_Admin($params['serverhostname'], $params['serveraccesshash']);
$response = $cwp7->getAllAccounts();
if($response['status'] == 'OK'){
$results = $response['msj'];
for($i = 0; $i < count($results); $i++){
if($results[$i]['diskusage'] == '') {
$diskusage = 0;
} else {
$diskusage = trim($results[$i]['diskusage']);
}
if($results[$i]['disklimit'] == '') {
$disklimit = 0;
} else {
$disklimit = trim($results[$i]['disklimit']);
}
if($results[$i]['bandwidth'] == '') {
$bandwidth = 0;
} else {
$bandwidth =trim($results[$i]['bandwidth']);
}
if($results[$i]['bwlimit'] == '') {
$bwlimit = 0;
} else {
$bwlimit = trim($results[$i]['bwlimit']);
}
$domain = trim($results[$i]['domain']);
try {
\WHMCS\Database\Capsule::table('tblhosting')
->where('server', $params['serverid'])
->where('domain', $domain)
->update([
'diskusage' => $diskusage,
'disklimit' => $disklimit,
'bwusage' => $bandwidth,
'bwlimit' => $bwlimit,
'lastupdate' => date('Y-m-d H:i:S'),
]);
} catch (\Exception $e) {
logActivity('ERROR: Unable to update server usage: ' . $e->getMessage());
}
}
}
}