Skip to content
Snippets Groups Projects
Commit 813beb29 authored by Till Brehm's avatar Till Brehm
Browse files

Added remote api function to set system > server config values.

parent 4baefe24
No related branches found
No related tags found
No related merge requests found
...@@ -142,6 +142,34 @@ class remoting_server extends remoting { ...@@ -142,6 +142,34 @@ class remoting_server extends remoting {
} }
} }
/**
Set a value in the server configuration
@param int session id
@param int server id
@param string section of the config field in the server table. Could be 'web', 'dns', 'mail', 'dns', 'cron', etc
@param string key of the option that you want to set
@param string option value that you want to set
*/
public function server_config_set($session_id, $server_id, $section, $key, $value) {
global $app;
if(!$this->checkPerm($session_id, 'server_config_set')) {
throw new SoapFault('permission_denied', 'You do not have the permissions to access this function.');
return false;
}
if (!empty($server_id) && $server_id > 0 && $section != '' && $key != '') {
$app->uses('remoting_lib,getconf,ini_parser');
$server_config_array = $app->getconf->get_server_config($server_id);
$server_config_array[$section][$key] = $value;
$server_config_str = $app->ini_parser->get_ini_string($server_config_array);
$app->db->datalogUpdate('server', array("config" => $server_config_str), 'server_id', $server_id);
} else {
throw new SoapFault('invalid_function_parameter', 'Invalid function parameter.');
return false;
}
}
/** /**
Gets a list of all servers Gets a list of all servers
@param int session_id @param int session_id
......
<?php <?php
$function_list['server_get,get_function_list,client_templates_get_all,server_get_serverid_by_ip,server_ip_get,server_ip_add,server_ip_update,server_ip_delete'] = 'Server functions'; $function_list['server_get,server_config_set,get_function_list,client_templates_get_all,server_get_serverid_by_ip,server_ip_get,server_ip_add,server_ip_update,server_ip_delete'] = 'Server functions';
$function_list['admin_record_permissions'] = 'Record permission changes'; $function_list['admin_record_permissions'] = 'Record permission changes';
?> ?>
<?php
require 'soap_config.php';
$context = stream_context_create([
'ssl' => [
// set some SSL/TLS specific options
'verify_peer' => false,
'verify_peer_name' => false,
'allow_self_signed' => true
]
]);
$client = new SoapClient(null, array('location' => $soap_location,
'uri' => $soap_uri,
'trace' => 1,
'exceptions' => 1,
'stream_context' => $context));
try {
if($session_id = $client->login($username, $password)) {
echo 'Logged successfull. Session ID:'.$session_id.'<br />';
}
//* Set the function parameters.
$server_id = 1;
$result = $client->server_config_set($session_id, $server_id, 'server', 'migration_mode', 'y');
print_r($result);
echo "<br>";
if($client->logout($session_id)) {
echo 'Logged out.<br />';
}
} catch (SoapFault $e) {
echo $client->__getLastResponse();
die('SOAP Error: '.$e->getMessage());
}
?>
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment