New functions for the API
I'm missing some funktions in your API. There isn't a request function to get the ISPConfig Version, get the ServerID with servername and get the functions of the existing servers in a multiserver installation. I had create 3 functions for the API. It will be nice if you take a look on this code and add it to your API in a next release.
/**
Gets the server_id by server_name
@param int session_id
@param int server_name
@author Sascha Bay info@space2place.de TheCry 2013
*/
public function server_get_serverid_by_server_name($session_id, $server_name)
{
global $app;
if(!$this->checkPerm($session_id, 'server_get_serverid_by_server_name')) {
$this->server->fault('permission_denied', 'You do not have the permissions to access this function.');
return false;
}
if (!empty($session_id) && !empty($server_name)) {
sql = "SELECT server_id FROM server WHERE server_name = '
server_name' LIMIT 1 ";
$all = $app->db->queryAllRecords($sql);
return $all;
} else {
return false;
}
}
/**
Gets the functions of a server by server_id
@param int session_id
@param int server_id
@author Sascha Bay <info@space2place.de> TheCry 2013
*/
public function server_get_functions($session_id, $server_id)
{
global $app;
if(!$this->checkPerm($session_id, 'server_get_functions')) {
$this->server->fault('permission_denied', 'You do not have the permissions to access this function.');
return false;
}
if (!empty($session_id) && !empty($server_id)) {
$sql = "SELECT mail_server, web_server, dns_server, file_server, db_server, vserver_server, proxy_server, firewall_server FROM server WHERE server_id = '$server_id' LIMIT 1 ";
$all = $app->db->queryAllRecords($sql);
return $all;
} else {
return false;
}
}
/**
Gets the ISPconfig version of the server
@param int session_id
@author Sascha Bay <info@space2place.de> TheCry 2013
*/
public function server_get_app_version($session_id)
{
global $app;
if(!$this->checkPerm($session_id, 'server_get_app_version')) {
$this->server->fault('permission_denied', 'You do not have the permissions to access this function.');
return false;
}
if (!empty($session_id)) {
$ispc_app_version = array('ispc_app_version' => ISPC_APP_VERSION);
return $ispc_app_version;
} else {
return false;
}
}
I'd added the new functions to the "Server Function"
<?php
$function_list['server_get,get_function_list,client_templates_get_all,server_get_serverid_by_server_name,server_get_serverid_by_ip,server_ip_add,server_ip_update,server_ip_delete'] = 'Server functions';
?>