From 76f5de6c09231230dcb2d649c88194cda6640237 Mon Sep 17 00:00:00 2001 From: delzey Date: Sun, 16 Dec 2012 13:36:18 -0600 Subject: [PATCH 01/15] Update libraries/cpanel/cpanel_api_addon_domain.php Ability to add API 1 calls within the same file if needed. Simply added 'apiversion' --- libraries/cpanel/cpanel_api_addon_domain.php | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/libraries/cpanel/cpanel_api_addon_domain.php b/libraries/cpanel/cpanel_api_addon_domain.php index 27df940..98b3925 100644 --- a/libraries/cpanel/cpanel_api_addon_domain.php +++ b/libraries/cpanel/cpanel_api_addon_domain.php @@ -5,6 +5,7 @@ * Description of cpanel_api_addon_domain * * @author nunenuh@gmail.com + * @modified by: Dean Elzey @ BitShout */ class Cpanel_Api_Addon_Domain extends Cpanel_Api_Query{ private $param=array(); @@ -30,7 +31,8 @@ function __construct($param) { */ public function delete_addon_domain($domain, $subdomain){ $input=array( - 'module' => 'AddonDomain', + 'apiversion' => 2, + 'module' => 'AddonDomain', 'function' => 'deladdondomain', 'domain' => $domain, 'subdomain' => $subdomain @@ -56,7 +58,8 @@ public function delete_addon_domain($domain, $subdomain){ */ public function add_addon_domain($dir, $new_domain, $subdomain){ $input=array( - 'module' => 'AddonDomain', + 'apiversion' => 2, + 'module' => 'AddonDomain', 'function' => 'addaddondomain', 'dir' => $dir, 'newdomain' => $new_domain, @@ -79,7 +82,8 @@ public function add_addon_domain($dir, $new_domain, $subdomain){ */ public function list_addon_domains($regex=''){ $input=array( - 'module' => 'AddonDomain', + 'apiversion' => 2, + 'module' => 'AddonDomain', 'function' => 'listaddondomains', 'regex' => $regex ); From 3e6183f41c6c51c1d3ce025d875221d58cb9a070 Mon Sep 17 00:00:00 2001 From: delzey Date: Sun, 16 Dec 2012 13:37:46 -0600 Subject: [PATCH 02/15] Update libraries/cpanel/cpanel_api_cron.php --- libraries/cpanel/cpanel_api_cron.php | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/libraries/cpanel/cpanel_api_cron.php b/libraries/cpanel/cpanel_api_cron.php index d46b859..384e6b5 100644 --- a/libraries/cpanel/cpanel_api_cron.php +++ b/libraries/cpanel/cpanel_api_cron.php @@ -4,6 +4,7 @@ * Description of cpanel_api_cron * * @author nunenuh@gmail.com + * @modified by: Dean Elzey @ BitShout */ class Cpanel_Api_Cron extends Cpanel_Api_Query{ private $param=array(); @@ -25,7 +26,8 @@ function __construct($param) { */ public function set_email($email){ $input=array( - 'module' => 'Cron', + 'apiversion' => 2, + 'module' => 'Cron', 'function' => 'set_email', 'email' => $email ); @@ -44,6 +46,7 @@ public function set_email($email){ */ public function list_cron(){ $input=array( + 'apiversion' => 2, 'module' => 'Cron', 'function' => 'listcron' ); @@ -74,6 +77,7 @@ public function list_cron(){ */ public function add_cron($command, $day, $hour, $minute, $month, $weekday){ $input=array( + 'apiversion' => 2, 'module' => 'Cron', 'function' => 'add_line', 'command' => $command, @@ -101,7 +105,8 @@ public function add_cron($command, $day, $hour, $minute, $month, $weekday){ */ public function remove_cron($line){ $input=array( - 'module' => 'Cron', + 'apiversion' => 2, + 'module' => 'Cron', 'function' => 'remove_line', 'line' => $line ); @@ -121,6 +126,7 @@ public function remove_cron($line){ */ public function get_email(){ $input=array( + 'apiversion' => 2, 'module' => 'Cron', 'function' => 'get_email' ); @@ -154,6 +160,7 @@ public function get_email(){ */ public function edit_cron($command, $day, $hour, $minute, $month, $weekday, $linekey){ $input=array( + 'apiversion' => 2, 'module' => 'Cron', 'function' => 'add_line', 'command' => $command, From 7ac34fed40a61e15dc8d1a6a94ae1550c0ee1123 Mon Sep 17 00:00:00 2001 From: delzey Date: Sun, 16 Dec 2012 13:38:09 -0600 Subject: [PATCH 03/15] Update libraries/cpanel/cpanel_api_email.php --- libraries/cpanel/cpanel_api_email.php | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/libraries/cpanel/cpanel_api_email.php b/libraries/cpanel/cpanel_api_email.php index e400f21..ad55b80 100755 --- a/libraries/cpanel/cpanel_api_email.php +++ b/libraries/cpanel/cpanel_api_email.php @@ -3,6 +3,7 @@ * Description of Cpanel_Api * * @author nunenuh@gmail.com + * @modified by: Dean Elzey @ BitShout */ class Cpanel_Api_Email extends Cpanel_Api_Query{ private $param=array(); @@ -21,6 +22,7 @@ function __construct($param=array()) { */ public function list_mail(){ $input=array( + 'apiversion' => 2, 'module' => 'Email', 'function' => 'listpopswithdisk' ); @@ -50,6 +52,7 @@ public function list_mail(){ */ public function add_mail($domain, $email, $password, $quota){ $input=array( + 'apiversion' => 2, 'module' => 'Email', 'function' => 'addpop', 'domain' => $domain, @@ -84,6 +87,7 @@ public function add_mail($domain, $email, $password, $quota){ */ public function edit_mail_quota($domain, $email, $quota){ $input=array( + 'apiversion' => 2, 'module' => 'Email', 'function' => 'editquota', 'domain' => $domain, @@ -115,6 +119,7 @@ public function edit_mail_quota($domain, $email, $quota){ */ public function delete_mail($domain, $email){ $input=array( + 'apiversion' => 2, 'module' => 'Email', 'function' => 'delpop', 'domain' => $domain, @@ -146,6 +151,7 @@ public function delete_mail($domain, $email){ */ public function update_mail_password($domain, $email, $new_password){ $input=array( + 'apiversion' => 2, 'module' => 'Email', 'function' => 'passwdpop', 'domain' => $domain, @@ -175,6 +181,7 @@ public function update_mail_password($domain, $email, $new_password){ */ public function list_mx($domain=''){ $input=array( + 'apiversion' => 2, 'module' => 'Email', 'function' => 'listmxs' ); @@ -212,6 +219,7 @@ public function list_mx($domain=''){ */ public function add_mx($domain, $exchange, $preference, $always_accept=''){ $input=array( + 'apiversion' => 2, 'module' => 'Email', 'function' => 'addmx', 'domain' => $domain, @@ -252,6 +260,7 @@ public function add_mx($domain, $exchange, $preference, $always_accept=''){ */ public function change_mx($domain, $exchange, $old_exchange, $old_preference, $preference, $always_accept=''){ $input=array( + 'apiversion' => 2, 'module' => 'Email', 'function' => 'changemx', 'domain' => $domain, @@ -284,6 +293,7 @@ public function change_mx($domain, $exchange, $old_exchange, $old_preference, $p */ public function delete_mx($domain, $exchange, $preference){ $input=array( + 'apiversion' => 2, 'module' => 'Email', 'function' => 'delmx', 'domain' => $domain, @@ -321,6 +331,7 @@ public function delete_mx($domain, $exchange, $preference){ */ public function set_mx_check($domain, $mxcheck){ $input=array( + 'apiversion' => 2, 'module' => 'Email', 'function' => 'setmxcheck', 'domain' => $domain, @@ -346,6 +357,7 @@ public function set_mx_check($domain, $mxcheck){ public function list_forwarders($domain='', $regex=''){ $input=array( + 'apiversion' => 2, 'module' => 'Email', 'function' => 'listforwards' ); @@ -391,6 +403,7 @@ public function list_forwarders($domain='', $regex=''){ public function add_forwader($domain, $email, $fwdopt, $fwdemail='', $fwdsystem='',$failmsgs='',$pipefwd=''){ $input=array( + 'apiversion' => 2, 'module' => 'Email', 'function' => 'addforward', 'domain' => $domain, @@ -421,6 +434,7 @@ public function add_forwader($domain, $email, $fwdopt, */ public function list_default_adresses($domain){ $input=array( + 'apiversion' => 2, 'module' => 'Email', 'function' => 'listdefaultaddresses', 'domain' => $domain @@ -460,6 +474,7 @@ public function list_default_adresses($domain){ */ public function set_default_address($fwdopt, $domain, $failmsgs='', $fwdemail='', $pipefwd=''){ $input=array( + 'apiversion' => 2, 'module' => 'Email', 'function' => 'setdefaultaddress', 'fwdopt' => $fwdopt, @@ -475,4 +490,4 @@ public function set_default_address($fwdopt, $domain, $failmsgs='', $fwdemail='' return $ob->cpanelresult->data; } -} \ No newline at end of file +} From 674e2eef2643264a88e67c5559976768dfafa6d3 Mon Sep 17 00:00:00 2001 From: delzey Date: Sun, 16 Dec 2012 13:38:32 -0600 Subject: [PATCH 04/15] Update libraries/cpanel/cpanel_api_ftp.php --- libraries/cpanel/cpanel_api_ftp.php | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/libraries/cpanel/cpanel_api_ftp.php b/libraries/cpanel/cpanel_api_ftp.php index f527a98..a288162 100644 --- a/libraries/cpanel/cpanel_api_ftp.php +++ b/libraries/cpanel/cpanel_api_ftp.php @@ -4,6 +4,7 @@ * Description of cpanel_api_ftp * * @author nunenuh@gmail.com + * @modified by: Dean Elzey @ BitShout */ class Cpanel_Api_Ftp extends Cpanel_Api_Query { private $param=array(); @@ -25,6 +26,7 @@ function __construct($param) { */ public function list_ftp($include_acct_types, $skip_acct_types){ $input=array( + 'apiversion' => 2, 'module' => 'Ftp', 'function' => 'listftp', 'include_acct_types' => $include_acct_types, @@ -44,6 +46,7 @@ public function list_ftp($include_acct_types, $skip_acct_types){ */ public function list_ftp_sessions(){ $input=array( + 'apiversion' => 2, 'module' => 'Ftp', 'function' => 'listftpsessions' ); @@ -69,6 +72,7 @@ public function list_ftp_sessions(){ */ public function list_ftp_with_disk($dirhtml, $include_acct_types='', $skip_acct_types=''){ $input=array( + 'apiversion' => 2, 'module' => 'Ftp', 'function' => 'listftpwithdisk', 'dirhtml' => $dirhtml @@ -95,6 +99,7 @@ public function list_ftp_with_disk($dirhtml, $include_acct_types='', $skip_acct_ */ public function passwd($user, $new_pass){ $input=array( + 'apiversion' => 2, 'module' => 'Ftp', 'function' => 'passwd', 'user' => $user, @@ -125,6 +130,7 @@ public function passwd($user, $new_pass){ */ public function add_ftp($user, $pass, $quota, $homedir){ $input=array( + 'apiversion' => 2, 'module' => 'Ftp', 'function' => 'addftp', 'user' => $user, @@ -153,6 +159,7 @@ public function add_ftp($user, $pass, $quota, $homedir){ */ public function set_quota($user, $quota){ $input=array( + 'apiversion' => 2, 'module' => 'Ftp', 'function' => 'setquota', 'user' => $user, @@ -179,6 +186,7 @@ public function set_quota($user, $quota){ */ public function delete_ftp($user,$destroy=false){ $input=array( + 'apiversion' => 2, 'module' => 'Ftp', 'function' => 'delftp', 'user' => $user, From b2ee7050628897a720b2bf1f5d9839c5ce57d88f Mon Sep 17 00:00:00 2001 From: delzey Date: Sun, 16 Dec 2012 13:39:42 -0600 Subject: [PATCH 05/15] Update libraries/cpanel/cpanel_api_mysql.php --- libraries/cpanel/cpanel_api_mysql.php | 71 ++++++++++++++++++++++++--- 1 file changed, 65 insertions(+), 6 deletions(-) diff --git a/libraries/cpanel/cpanel_api_mysql.php b/libraries/cpanel/cpanel_api_mysql.php index e2f36d4..493aad2 100644 --- a/libraries/cpanel/cpanel_api_mysql.php +++ b/libraries/cpanel/cpanel_api_mysql.php @@ -4,6 +4,7 @@ * Description of cpanel_api_mysql * * @author nunenuh@gmail.com + * @modified by: Dean Elzey @ BitShout */ class Cpanel_Api_Mysql extends Cpanel_Api_Query{ private $param=array(); @@ -26,7 +27,8 @@ function __construct($param) { */ public function user_db_privs($db, $user){ $input=array( - 'module' => 'MysqlFE', + 'apiversion' => 2, + 'module' => 'MysqlFE', 'function' => 'userdbprivs', 'db' => $db, 'user' => $user @@ -50,7 +52,8 @@ public function user_db_privs($db, $user){ */ public function list_dbs($regex=''){ $input=array( - 'module' => 'MysqlFE', + 'apiversion' => 2, + 'module' => 'MysqlFE', 'function' => 'listdbs' ); !empty($regex) && array_push($input, array('regex'=>$regex)); @@ -66,7 +69,8 @@ public function list_dbs($regex=''){ */ public function list_dbs_backup(){ $input=array( - 'module' => 'MysqlFE', + 'apiversion' => 2, + 'module' => 'MysqlFE', 'function' => 'listdbsbackup' ); $query=$this->build_query($input); @@ -87,7 +91,8 @@ public function list_dbs_backup(){ */ public function list_users_in_db($db){ $input=array( - 'module' => 'MysqlFE', + 'apiversion' => 2, + 'module' => 'MysqlFE', 'function' => 'listusersindb' ); !empty($db) && array_push($input, array('db'=>$db)); @@ -104,7 +109,8 @@ public function list_users_in_db($db){ */ public function list_hosts(){ $input=array( - 'module' => 'MysqlFE', + 'apiversion' => 2, + 'module' => 'MysqlFE', 'function' => 'listhosts' ); @@ -120,7 +126,8 @@ public function list_hosts(){ */ public function list_users(){ $input=array( - 'module' => 'MysqlFE', + 'apiversion' => 2, + 'module' => 'MysqlFE', 'function' => 'listusers' ); $query=$this->build_query($input); @@ -129,6 +136,58 @@ public function list_users(){ return $status=$ob->cpanelresult->data; } + + /** + * Remove a user from MySQL. + * @return type object + */ + public function del_db_user($dbuser){ + $input=array( + 'apiversion' => 1, + 'module' => 'Mysql', + 'function' => 'deluser', + 'arg-0' => $dbuser + ); + $query=$this->build_query($input); + $raw=$this->query($query); + $ob=json_decode($raw, false); + return $ob->data->result; + } + + /** + * Remove a database from MySQL. + * @return type object + */ + public function del_db($db){ + $input=array( + 'apiversion' => 1, + 'module' => 'Mysql', + 'function' => 'deldb', + 'arg-0' => $db + ); + $query=$this->build_query($input); + $raw=$this->query($query); + $ob=json_decode($raw, false); + return $ob->data->result; + } + + /** + * Retrieve the number of databases currently in use. + * + * @return type object + */ + public function numb_dbs() + { + $input=array( + 'apiversion' => 1, + 'module' => 'Mysql', + 'function' => 'number_of_dbs' + ); + $query=$this->build_query($input); + $raw=$this->query($query); + $ob=json_decode($raw, false); + return $ob->data->result; + } } From 914db747a252e18247d7be9d1a96cb8d1b3a9539 Mon Sep 17 00:00:00 2001 From: delzey Date: Sun, 16 Dec 2012 13:40:01 -0600 Subject: [PATCH 06/15] Update libraries/cpanel/cpanel_api_net.php --- libraries/cpanel/cpanel_api_net.php | 3 +++ 1 file changed, 3 insertions(+) diff --git a/libraries/cpanel/cpanel_api_net.php b/libraries/cpanel/cpanel_api_net.php index bc8782f..fde2b12 100644 --- a/libraries/cpanel/cpanel_api_net.php +++ b/libraries/cpanel/cpanel_api_net.php @@ -4,6 +4,7 @@ * Description of cpanel_api_net * * @author nunenuh@gmail.com + * @modified by: Dean Elzey @ BitShout */ class Cpanel_Api_Net extends Cpanel_Api_Query { private $param=array(); @@ -21,6 +22,7 @@ function __construct($param) { */ public function traceroute(){ $input=array( + 'apiversion' => 2, 'module' => 'Net', 'function' => 'traceroute' ); @@ -43,6 +45,7 @@ public function traceroute(){ */ public function dns_zone($host){ $input=array( + 'apiversion' => 2, 'module' => 'Net', 'function' => 'dnszone', 'host' => $host From ae4749a5cf8e749ea32c63ec7a565c96d4f715f0 Mon Sep 17 00:00:00 2001 From: delzey Date: Sun, 16 Dec 2012 13:40:14 -0600 Subject: [PATCH 07/15] Update libraries/cpanel/cpanel_api_net.php --- libraries/cpanel/cpanel_api_net.php | 122 ++++++++++++++++++---------- 1 file changed, 80 insertions(+), 42 deletions(-) diff --git a/libraries/cpanel/cpanel_api_net.php b/libraries/cpanel/cpanel_api_net.php index fde2b12..5222a8e 100644 --- a/libraries/cpanel/cpanel_api_net.php +++ b/libraries/cpanel/cpanel_api_net.php @@ -1,59 +1,97 @@ param = $param; - parent::__construct($this->param); + + function __construct($param=array()) { + $this->hash = base64_encode($param['username'] . ':' . $param['password']); + $this->host = $param['host']; + $this->port = intval($param['port']); + $this->ssl = $param['ssl'] ? 'https://' : 'http://'; + $this->password = $param['password']; + $this->username = $param['username']; + $this->api = 'json-api/cpanel?'; + } + + /** + * This method for call cpanel api with + * raw query, use this method with build_query method + * to call cpanel api with valid request + * @param type $query + * @return type json + */ + public function query($query){ + $curl = curl_init(); + curl_setopt($curl, CURLOPT_SSL_VERIFYPEER,0); + curl_setopt($curl, CURLOPT_SSL_VERIFYHOST,0); + curl_setopt($curl, CURLOPT_HEADER,0); + curl_setopt($curl, CURLOPT_RETURNTRANSFER,1); + $header[0] = "Authorization: Basic " . $this->hash . "\n\r"; + curl_setopt($curl,CURLOPT_HTTPHEADER,$header); + curl_setopt($curl, CURLOPT_URL, $query); + $result = curl_exec($curl); + if ($result == false) { + error_log("curl_exec threw error \"" . curl_error($curl) . "\" for $query"); + } + curl_close($curl); + + return $result; } /** - * Perform a traceroute back to your local IP address - * while displaying packet speed at each hop in milliseconds. - * - * @return type object + * This method for building valid query + * for access cpanel api json function + * @param type $param array + * @return type string */ - public function traceroute(){ - $input=array( - 'apiversion' => 2, - 'module' => 'Net', - 'function' => 'traceroute' - ); - $query=$this->build_query($input); - $raw=$this->query($query); - $ob=json_decode($raw, false); - return $status=$ob->cpanelresult->data; + public function build_query($param=array()){ + $base=$this->ssl.$this->host.':'.$this->port.'/'.$this->api; + $build=$this->__build($param); + return $base.$build; } /** - * This API call performs an A record DNS query for the - * hostname presented via the 'host' variable, with a 60 second timeout. - * If more than one A record exists for a given FQDN, all will be returned. - * - * Descriptions
- * $host This value is a fully qualified domain name. - * Either host.domain.com, or domain.com, i.e., www.cpanel.net, or simply cpanel.net.
- * - * @param type object + * This method for building dynamic query + * based on valid paramater of cpanel api json function + * @param type $param + * @return string */ - public function dns_zone($host){ - $input=array( - 'apiversion' => 2, - 'module' => 'Net', - 'function' => 'dnszone', - 'host' => $host - ); - $query=$this->build_query($input); - $raw=$this->query($query); - $ob=json_decode($raw, false); - return $status=$ob->cpanelresult->data; + private function __build($param=array()){ + $check=count($param); + $out=''; + if ($check==2){ + $out='cpanel_jsonapi_module='.$param['module'].'&'; + $out='cpanel_jsonapi_func='.$param['function'].'&'; + $out.='cpanel_jsonapi_apiversion='.$param['apiversion']; + } else { + $out='cpanel_jsonapi_module='.$param['module'].'&'; + $out.='cpanel_jsonapi_func='.$param['function'].'&'; + $out.='cpanel_jsonapi_apiversion='.$param['apiversion'].'&'; + } + + $a=1; + foreach ($param as $key => $val){ + if (($key!='function')&&($key!='module')){ + if ($a<=$check-2){ + $out.=$key.'='.$val.'&'; + } else { + $out.=$key.'='.$val; + } + } + $a++; + } + return $out; } - } From 446e71eca9672ee8c6e7ec57aa29ed31f6880e31 Mon Sep 17 00:00:00 2001 From: delzey Date: Sun, 16 Dec 2012 13:40:47 -0600 Subject: [PATCH 08/15] Update libraries/cpanel/cpanel_api_query.php --- libraries/cpanel/cpanel_api_query.php | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/libraries/cpanel/cpanel_api_query.php b/libraries/cpanel/cpanel_api_query.php index d1182aa..5222a8e 100755 --- a/libraries/cpanel/cpanel_api_query.php +++ b/libraries/cpanel/cpanel_api_query.php @@ -2,6 +2,7 @@ /** * @author nunenuh@gmail.com + * @modified by: Dean Elzey @ BitShout * */ class Cpanel_Api_Query{ @@ -34,7 +35,7 @@ function __construct($param=array()) { public function query($query){ $curl = curl_init(); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER,0); - curl_setopt($curl, CURLOPT_SSL_VERIFYHOST,0); + curl_setopt($curl, CURLOPT_SSL_VERIFYHOST,0); curl_setopt($curl, CURLOPT_HEADER,0); curl_setopt($curl, CURLOPT_RETURNTRANSFER,1); $header[0] = "Authorization: Basic " . $this->hash . "\n\r"; @@ -72,10 +73,12 @@ private function __build($param=array()){ $out=''; if ($check==2){ $out='cpanel_jsonapi_module='.$param['module'].'&'; - $out.='cpanel_jsonapi_func='.$param['function']; + $out='cpanel_jsonapi_func='.$param['function'].'&'; + $out.='cpanel_jsonapi_apiversion='.$param['apiversion']; } else { $out='cpanel_jsonapi_module='.$param['module'].'&'; $out.='cpanel_jsonapi_func='.$param['function'].'&'; + $out.='cpanel_jsonapi_apiversion='.$param['apiversion'].'&'; } $a=1; From b25e0d0b5737d59cc1c3e5e18732042be312c7cf Mon Sep 17 00:00:00 2001 From: delzey Date: Sun, 16 Dec 2012 13:41:14 -0600 Subject: [PATCH 09/15] Update libraries/cpanel/cpanel_api_stats.php --- libraries/cpanel/cpanel_api_stats.php | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/libraries/cpanel/cpanel_api_stats.php b/libraries/cpanel/cpanel_api_stats.php index d239a05..111dc0c 100755 --- a/libraries/cpanel/cpanel_api_stats.php +++ b/libraries/cpanel/cpanel_api_stats.php @@ -3,6 +3,7 @@ * Description of cpanel_api_stats * * @author nunenuh@gmail.com + * @modified by: Dean Elzey @ BitShout */ class Cpanel_Api_Stats extends Cpanel_Api_Query{ private $param=array(); @@ -20,6 +21,7 @@ function __construct($param=array()) { */ public function list_webalizer(){ $input=array( + 'apiversion' => 2, 'module' => 'Stats', 'function' => 'listwebalizer', ); @@ -39,6 +41,7 @@ public function list_webalizer(){ */ public function list_awstats(){ $input=array( + 'apiversion' => 2, 'module' => 'Stats', 'function' => 'listawstats', ); @@ -58,6 +61,7 @@ public function list_awstats(){ */ public function list_last_visitors(){ $input=array( + 'apiversion' => 2, 'module' => 'Stats', 'function' => 'listlastvisitors', ); @@ -73,6 +77,7 @@ public function list_last_visitors(){ */ public function list_urchin(){ $input=array( + 'apiversion' => 2, 'module' => 'Stats', 'function' => 'listurchin', ); @@ -90,6 +95,7 @@ public function list_urchin(){ */ public function list_rawlogs(){ $input=array( + 'apiversion' => 2, 'module' => 'Stats', 'function' => 'listrawlogs', ); @@ -108,6 +114,7 @@ public function list_rawlogs(){ */ public function list_analog(){ $input=array( + 'apiversion' => 2, 'module' => 'Stats', 'function' => 'listanalog', ); From 7bbaff1862f0bceddfbbf7b3642ea6f045b78c13 Mon Sep 17 00:00:00 2001 From: delzey Date: Sun, 16 Dec 2012 13:41:38 -0600 Subject: [PATCH 10/15] Update libraries/cpanel/cpanel_api_statsbar.php --- libraries/cpanel/cpanel_api_statsbar.php | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/libraries/cpanel/cpanel_api_statsbar.php b/libraries/cpanel/cpanel_api_statsbar.php index fc51b07..7c8d304 100755 --- a/libraries/cpanel/cpanel_api_statsbar.php +++ b/libraries/cpanel/cpanel_api_statsbar.php @@ -3,6 +3,7 @@ * Description of cpanel_api_statsbar * * @author nunenuh@gmail.com + * @modified by: Dean Elzey @ BitShout */ class Cpanel_Api_Statsbar extends Cpanel_Api_Query{ private $param=array(); @@ -40,7 +41,8 @@ function __construct($param=array()) { */ public function stats($display){ $input=array( - 'module' => 'StatsBar', + 'apiversion' => 2, + 'module' => 'StatsBar', 'function' => 'stat', 'display' => $display ); From 33aafc7bde924dd40293a0d72f7c0386cfe2a6c4 Mon Sep 17 00:00:00 2001 From: delzey Date: Sun, 16 Dec 2012 13:41:58 -0600 Subject: [PATCH 11/15] Update libraries/cpanel/cpanel_api_subdomain.php --- libraries/cpanel/cpanel_api_subdomain.php | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/libraries/cpanel/cpanel_api_subdomain.php b/libraries/cpanel/cpanel_api_subdomain.php index 95c367e..e77a701 100755 --- a/libraries/cpanel/cpanel_api_subdomain.php +++ b/libraries/cpanel/cpanel_api_subdomain.php @@ -3,6 +3,7 @@ * Description of Cpanel_Api_Subdomain * * @author nunenuh@gmail.com + * @modified by: Dean Elzey @ BitShout */ class Cpanel_Api_Subdomain extends Cpanel_Api_Query{ private $param= array(); @@ -23,6 +24,7 @@ function __construct($param=array()) { */ public function list_subdomain($regex=''){ $input=array( + 'apiversion' => 2, 'module' => 'SubDomain', 'function' => 'listsubdomains' ); @@ -51,6 +53,7 @@ public function list_subdomain($regex=''){ */ public function add_subdomain($domain, $rootdomain, $dir='', $disallowdot=''){ $input=array( + 'apiversion' => 2, 'module' => 'SubDomain', 'function' => 'addsubdomain', 'domain' => $domain, @@ -81,6 +84,7 @@ public function add_subdomain($domain, $rootdomain, $dir='', $disallowdot=''){ */ public function delete_subdomain($domain){ $input=array( + 'apiversion' => 2, 'module' => 'SubDomain', 'function' => 'delsubdomain', 'domain' => $domain From 4a0731cd0f18bed305f6742aa64fe55b9d2338a8 Mon Sep 17 00:00:00 2001 From: delzey Date: Sun, 16 Dec 2012 13:42:23 -0600 Subject: [PATCH 12/15] Update libraries/cpanel/cpanel_api_zone_edit.php --- libraries/cpanel/cpanel_api_zone_edit.php | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/libraries/cpanel/cpanel_api_zone_edit.php b/libraries/cpanel/cpanel_api_zone_edit.php index 64615e3..dc76b3c 100644 --- a/libraries/cpanel/cpanel_api_zone_edit.php +++ b/libraries/cpanel/cpanel_api_zone_edit.php @@ -4,6 +4,7 @@ * Description of cpanel_api_zone_edit * * @author nunenuh@gmail.com + * @modified by: Dean Elzey @ BitShout */ class Cpanel_Api_Zone_Edit extends Cpanel_Api_Query{ private $param=array(); @@ -42,6 +43,7 @@ public function add_zone_record($domain, $name, $type, $txtdata='', $cname='',$address='', $ttl='',$class=''){ $input=array( + 'apiversion' => 2, 'module' => 'ZoneEdit', 'function' => 'add_zone_record', 'domain' => $domain, @@ -94,6 +96,7 @@ public function edit_zone_record($domain, $line, $type, $txtdata='',$cname='',$address='', $ttl='', $class=''){ $input=array( + 'apiversion' => 2, 'module' => 'ZoneEdit', 'function' => 'edit_zone_record', 'domain' => $domain, @@ -132,6 +135,7 @@ public function edit_zone_record($domain, $line, $type, */ public function remove_zone_record($domain, $line){ $input=array( + 'apiversion' => 2, 'module' => 'ZoneEdit', 'function' => 'remove_zone_record', 'domain' => $domain, @@ -155,6 +159,7 @@ public function remove_zone_record($domain, $line){ */ public function fetch_zone_records($domain){ $input=array( + 'apiversion' => 2, 'module' => 'ZoneEdit', 'function' => 'fetchzone_records', 'domain' => $domain @@ -174,6 +179,7 @@ public function fetch_zone_records($domain){ */ public function fetch_zones(){ $input=array( + 'apiversion' => 2, 'module' => 'ZoneEdit', 'function' => 'fetchzones' ); @@ -201,6 +207,7 @@ public function fetch_zones(){ */ public function fetch_zone($domain, $key='',$customonly=''){ $input=array( + 'apiversion' => 2, 'module' => 'ZoneEdit', 'function' => 'fetchzone', 'domain' => $domain @@ -226,6 +233,7 @@ public function fetch_zone($domain, $key='',$customonly=''){ */ public function reset_zone($domain){ $input=array( + 'apiversion' => 2, 'module' => 'ZoneEdit', 'function' => 'resetzone', 'domain' => $domain From f528feda86fcc6a6fc9a8b7bda9ab02f5e191557 Mon Sep 17 00:00:00 2001 From: delzey Date: Sun, 16 Dec 2012 13:43:29 -0600 Subject: [PATCH 13/15] Update libraries/cpanel/cpanel_api_net.php --- libraries/cpanel/cpanel_api_net.php | 122 ++++++++++------------------ 1 file changed, 42 insertions(+), 80 deletions(-) diff --git a/libraries/cpanel/cpanel_api_net.php b/libraries/cpanel/cpanel_api_net.php index 5222a8e..fde2b12 100644 --- a/libraries/cpanel/cpanel_api_net.php +++ b/libraries/cpanel/cpanel_api_net.php @@ -1,97 +1,59 @@ hash = base64_encode($param['username'] . ':' . $param['password']); - $this->host = $param['host']; - $this->port = intval($param['port']); - $this->ssl = $param['ssl'] ? 'https://' : 'http://'; - $this->password = $param['password']; - $this->username = $param['username']; - $this->api = 'json-api/cpanel?'; - } - - /** - * This method for call cpanel api with - * raw query, use this method with build_query method - * to call cpanel api with valid request - * @param type $query - * @return type json - */ - public function query($query){ - $curl = curl_init(); - curl_setopt($curl, CURLOPT_SSL_VERIFYPEER,0); - curl_setopt($curl, CURLOPT_SSL_VERIFYHOST,0); - curl_setopt($curl, CURLOPT_HEADER,0); - curl_setopt($curl, CURLOPT_RETURNTRANSFER,1); - $header[0] = "Authorization: Basic " . $this->hash . "\n\r"; - curl_setopt($curl,CURLOPT_HTTPHEADER,$header); - curl_setopt($curl, CURLOPT_URL, $query); - $result = curl_exec($curl); - if ($result == false) { - error_log("curl_exec threw error \"" . curl_error($curl) . "\" for $query"); - } - curl_close($curl); - - return $result; + function __construct($param) { + $this->param = $param; + parent::__construct($this->param); } /** - * This method for building valid query - * for access cpanel api json function - * @param type $param array - * @return type string + * Perform a traceroute back to your local IP address + * while displaying packet speed at each hop in milliseconds. + * + * @return type object */ - public function build_query($param=array()){ - $base=$this->ssl.$this->host.':'.$this->port.'/'.$this->api; - $build=$this->__build($param); - return $base.$build; + public function traceroute(){ + $input=array( + 'apiversion' => 2, + 'module' => 'Net', + 'function' => 'traceroute' + ); + $query=$this->build_query($input); + $raw=$this->query($query); + $ob=json_decode($raw, false); + return $status=$ob->cpanelresult->data; } /** - * This method for building dynamic query - * based on valid paramater of cpanel api json function - * @param type $param - * @return string + * This API call performs an A record DNS query for the + * hostname presented via the 'host' variable, with a 60 second timeout. + * If more than one A record exists for a given FQDN, all will be returned. + * + * Descriptions
+ * $host This value is a fully qualified domain name. + * Either host.domain.com, or domain.com, i.e., www.cpanel.net, or simply cpanel.net.
+ * + * @param type object */ - private function __build($param=array()){ - $check=count($param); - $out=''; - if ($check==2){ - $out='cpanel_jsonapi_module='.$param['module'].'&'; - $out='cpanel_jsonapi_func='.$param['function'].'&'; - $out.='cpanel_jsonapi_apiversion='.$param['apiversion']; - } else { - $out='cpanel_jsonapi_module='.$param['module'].'&'; - $out.='cpanel_jsonapi_func='.$param['function'].'&'; - $out.='cpanel_jsonapi_apiversion='.$param['apiversion'].'&'; - } - - $a=1; - foreach ($param as $key => $val){ - if (($key!='function')&&($key!='module')){ - if ($a<=$check-2){ - $out.=$key.'='.$val.'&'; - } else { - $out.=$key.'='.$val; - } - } - $a++; - } - return $out; + public function dns_zone($host){ + $input=array( + 'apiversion' => 2, + 'module' => 'Net', + 'function' => 'dnszone', + 'host' => $host + ); + $query=$this->build_query($input); + $raw=$this->query($query); + $ob=json_decode($raw, false); + return $status=$ob->cpanelresult->data; } + } From 86130e8d86cb76369dd31267c2084f86600a89c2 Mon Sep 17 00:00:00 2001 From: delzey Date: Sun, 16 Dec 2012 13:44:25 -0600 Subject: [PATCH 14/15] Update libraries/cpanel/cpanel_api_email.php --- libraries/cpanel/cpanel_api_email.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libraries/cpanel/cpanel_api_email.php b/libraries/cpanel/cpanel_api_email.php index ad55b80..f441e02 100755 --- a/libraries/cpanel/cpanel_api_email.php +++ b/libraries/cpanel/cpanel_api_email.php @@ -1,6 +1,6 @@ Date: Sun, 16 Dec 2012 13:46:36 -0600 Subject: [PATCH 15/15] Update libraries/cpanel_api.php --- libraries/cpanel_api.php | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/libraries/cpanel_api.php b/libraries/cpanel_api.php index 9559545..1d9d144 100755 --- a/libraries/cpanel_api.php +++ b/libraries/cpanel_api.php @@ -19,12 +19,14 @@ * Description of Cpanel_Api * * @author Lalu Erfandi Maula Yusnu at nunenuh@gmail.com + * @Modified by Dean Elzey @ BitShout * @license LGPL 2 * @copyright @ 2011 Mataram Nusa Tenggara Barat Indonesia * @link http://www.vthink.web.id * @link http://gen5x4.wordpress.com + * @link http://www.bitshout.com * @name Cpanel_Api - * @version 1.0.0 + * @version 1.1.0 */ class Cpanel_Api { private $CI; @@ -148,4 +150,3 @@ public function getConfig(){ } -