From ce9867c8b69abeaade113b7355baba6662c5a2cb Mon Sep 17 00:00:00 2001 From: tbrehm <t.brehm@ispconfig.org> Date: Tue, 12 Apr 2011 12:34:41 +0000 Subject: [PATCH] Merged revisions 2292,2296,2299 from satble branch. --- install/tpl/system.ini.master | 1 + .../web/admin/form/system_config.tform.php | 6 ++ .../web/admin/lib/lang/en_system_config.lng | 5 +- .../templates/system_config_misc_edit.htm | 4 ++ interface/web/remote/monitor.php | 60 +++++++++++++++++++ 5 files changed, 74 insertions(+), 2 deletions(-) create mode 100644 interface/web/remote/monitor.php diff --git a/install/tpl/system.ini.master b/install/tpl/system.ini.master index 13119b123..07d5a4ef2 100644 --- a/install/tpl/system.ini.master +++ b/install/tpl/system.ini.master @@ -30,3 +30,4 @@ new_domain_html=Please contact our support to create a new domain for you. [misc] dashboard_atom_url=http://www.ispconfig.org/atom +monitor_key= diff --git a/interface/web/admin/form/system_config.tform.php b/interface/web/admin/form/system_config.tform.php index bc3e972f8..3de23d5bf 100644 --- a/interface/web/admin/form/system_config.tform.php +++ b/interface/web/admin/form/system_config.tform.php @@ -260,6 +260,12 @@ $form["tabs"]['misc'] = array ( 'default' => 'http://www.ispconfig.org/atom', 'value' => '' ), + 'monitor_key' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'default' => '', + 'value' => '' + ), ################################## # ENDE Datatable fields ################################## diff --git a/interface/web/admin/lib/lang/en_system_config.lng b/interface/web/admin/lib/lang/en_system_config.lng index c096e12fb..9e8d224ce 100644 --- a/interface/web/admin/lib/lang/en_system_config.lng +++ b/interface/web/admin/lib/lang/en_system_config.lng @@ -21,6 +21,7 @@ $wb["use_domain_module_txt"] = 'Use the domain-module to add new domains'; $wb["use_domain_module_hint"] = 'If you use this module, your customers can only select one of the domains the admin creates for them. They cannot free edit the domain-field.You have to re-login after changing this value, to make the changes visible.'; $wb["new_domain_txt"] = 'HTML to create a new domain'; $wb["webftp_url_txt"] = 'WebFTP URL'; -$wb['admin_mail_txt'] = 'Administrator\'s e-mail'; -$wb['admin_name_txt'] = 'Administrator\'s name'; +$wb['admin_mail_txt'] = 'Administrator\'s e-mail'; +$wb["monitor_key_txt"] = 'Monitor keyword'; +$wb['admin_name_txt'] = 'Administrator\'s name'; ?> diff --git a/interface/web/admin/templates/system_config_misc_edit.htm b/interface/web/admin/templates/system_config_misc_edit.htm index c64b7c1ec..acf4e91c4 100644 --- a/interface/web/admin/templates/system_config_misc_edit.htm +++ b/interface/web/admin/templates/system_config_misc_edit.htm @@ -9,6 +9,10 @@ <label for="dashboard_atom_url">{tmpl_var name='dashboard_atom_url_txt'}</label> <input name="dashboard_atom_url" id="dashboard_atom_url" value="{tmpl_var name='dashboard_atom_url'}" size="" maxlength="" type="text" class="textInput" /> </div> + <div class="ctrlHolder"> + <label for="monitor_key">{tmpl_var name='monitor_key_txt'}</label> + <input name="monitor_key" id="monitor_key" value="{tmpl_var name='monitor_key'}" size="" maxlength="" type="text" class="textInput" /> + </div> </fieldset> <input type="hidden" name="id" value="{tmpl_var name='id'}"> diff --git a/interface/web/remote/monitor.php b/interface/web/remote/monitor.php new file mode 100644 index 000000000..230ace807 --- /dev/null +++ b/interface/web/remote/monitor.php @@ -0,0 +1,60 @@ +<?php +require_once('../../lib/config.inc.php'); +$conf['start_session'] = false; +require_once('../../lib/app.inc.php'); + +if($conf['demo_mode'] == true) $app->error('This function is disabled in demo mode.'); + +header('Content-Type: application/json; charset=utf-8'); +header('Access-Control-Allow-Origin: *'); +header('Access-Control-Allow-Headers: X-Requested-With'); +header('Cache-Control: no-cache, must-revalidate'); // HTTP/1.1 +header('Expires: Sat, 26 Jul 1997 05:00:00 GMT'); // Date in the past + +$type = addslashes($_GET['type']); +$token = addslashes($_GET['token']); +$server_id = intval($_GET['server']); + +$app->uses('getconf'); +$interface_config = $app->getconf->get_global_config('misc'); +$secret = $interface_config['monitor_key']; + +$out = array(); + +if($token == '' or $secret == '' or $token != $secret) { + $out['state'] = 'syserror'; + $out['data'] = 'Password empty or incorrect.'; + $out['time'] = date('Y-m-d H:i'); +} else { + if($type == 'serverlist') { + $sql = 'SELECT server_id, server_name FROM server WHERE 1 ORDER BY server_id'; + $records = $app->db->queryAllRecords($sql); + $out['state'] = 'ok'; + $out['data'] = $records; + $out['time'] = date('Y-m-d H:i',$rec['created']); + } else { + $rec = $app->db->queryOneRecord("SELECT * FROM monitor_data WHERE type = '$type' AND server_id = $server_id"); + if(is_array($rec)) { + $out['state'] = $rec['state']; + $out['data'] = unserialize(stripslashes($rec['data'])); + if(is_array($out['data']) && sizeof($out['data']) > 0){ + foreach($out['data'] as $key => $val){ + if(!$val) $out['data'][$key] = " "; + } + } + $out['time'] = date('Y-m-d H:i',$rec['created']); + } else { + $out['state'] = 'syserror'; + $out['data'] = 'No monitor record found.'; + $out['time'] = date('Y-m-d H:i'); + } + $sql = 'SELECT server_id, server_name FROM server WHERE 1 ORDER BY server_id'; + $records = $app->db->queryAllRecords($sql); + $out['serverlist'] = $records; + } +} +$out['type'] = $type; + +echo json_encode($out); +exit; +?> \ No newline at end of file -- GitLab