Merge pull request #3113 from pliablepixels/feature-api-daemon-control

new api to control daemon
This commit is contained in:
Isaac Connor 2021-01-23 16:28:39 -05:00 committed by Isaac Connor
parent d3c84a168a
commit fd21d47bbb
1 changed files with 24 additions and 0 deletions

View File

@ -21,6 +21,30 @@ class HostController extends AppController {
));
}
// an interface to individually control the various ZM daemons
// invocation: https://server/zm/api/host/daemonControl/<daemon>.pl/<command>.json
// note that this API is only for interaction with a specific
// daemon. zmdc also allows other functions like logrot/etc
public function daemonControl($daemon_name, $command) {
global $user;
if ($command == 'check' || $command == 'status') {
$permission = 'View';
} else {
$permission = 'Edit';
}
$allowed = (!$user) || ($user['System'] == $permission );
if ( !$allowed ) {
throw new UnauthorizedException(__("Insufficient privileges"));
return;
}
$string = ZM_PATH_BIN."/zmdc.pl $command $daemon_name";
$result = exec($string);
$this->set(array(
'result' => $result,
'_serialize' => array('result')
));
}
function getLoad() {
$load = sys_getloadavg();