From b8282a5cb1b8c38c7b409074254035aba92da3f7 Mon Sep 17 00:00:00 2001 From: Alejandro Gallardo Escobar Date: Mon, 23 Mar 2015 14:19:46 +0100 Subject: [PATCH] Added support to show the interface traffic graphs through the metaconsole and improved the ACL (cherry picked from commit fa9db9010cac637088e2d8cfa4ef4904f4dd115c) --- .../include/functions_treeview.php | 21 ++---- .../agentes/interface_traffic_graph_win.php | 66 +++++++++++-------- 2 files changed, 45 insertions(+), 42 deletions(-) diff --git a/pandora_console/include/functions_treeview.php b/pandora_console/include/functions_treeview.php index e6ed843d2b..bc4575321b 100755 --- a/pandora_console/include/functions_treeview.php +++ b/pandora_console/include/functions_treeview.php @@ -545,30 +545,23 @@ function treeview_printTable($id_agente, $server_data = array()) { $table->data = array(); foreach ($network_interfaces as $interface_name => $interface) { - if (!empty($interface['traffic'])) { + if (!empty($interface['traffic']) && check_acl($config['id_user'], $agent["id_grupo"], "RR")) { $params = array( 'interface_name' => $interface_name, 'agent_id' => $id_agente, 'traffic_module_in' => $interface['traffic']['in'], 'traffic_module_out' => $interface['traffic']['out'] ); + + if (defined('METACONSOLE') && !empty($server_id)) + $params["server"] = $server_id; + $params_json = json_encode($params); $params_encoded = base64_encode($params_json); + $url = ui_get_full_url("operation/agentes/interface_traffic_graph_win.php", false, false, false); + $graph_url = "$url?params=$params_encoded"; $win_handle = dechex(crc32($interface['status_module_id'].$interface_name)); - $graph_url = ''; - if (!defined('METACONSOLE')) { - $graph_url = $config['homeurl'] . - "operation/agentes/interface_traffic_graph_win.php?" . - "params=$params_encoded"; - } - else if (!empty($server_data)) { - $graph_url = ui_meta_get_url_console_child( - $server_data, null, null, null, null, - "operation/agentes/interface_traffic_graph_win.php?" . - "params=$params_encoded"); - } - $graph_link = "" . html_print_image("images/chart_curve.png", true, array("title" => __('Interface traffic'))) . ""; } diff --git a/pandora_console/operation/agentes/interface_traffic_graph_win.php b/pandora_console/operation/agentes/interface_traffic_graph_win.php index ad95fbd6d8..bbf94e46d1 100644 --- a/pandora_console/operation/agentes/interface_traffic_graph_win.php +++ b/pandora_console/operation/agentes/interface_traffic_graph_win.php @@ -29,23 +29,27 @@ require_once ($config['homedir'] . '/include/functions_graph.php'); require_once ($config['homedir'] . '/include/functions_custom_graphs.php'); require_once ($config['homedir'] . '/include/functions_modules.php'); -// Hash login process -if (! isset ($config['id_user']) && get_parameter("loginhash", 0)) { - $loginhash_data = get_parameter("loginhash_data", ""); - $loginhash_user = str_rot13(get_parameter("loginhash_user", "")); - - if ($config["loginhash_pwd"] != "" && $loginhash_data == md5($loginhash_user.io_output_password($config["loginhash_pwd"]))) { - db_logon ($loginhash_user, $_SERVER['REMOTE_ADDR']); - $_SESSION['id_usuario'] = $loginhash_user; - $config["id_user"] = $loginhash_user; - - $hash_connection_data = true; - } - -} - check_login(); +$params_json = base64_decode((string) get_parameter('params')); +$params = json_decode($params_json, true); + +// Metaconsole connection to the node +$server_id = (int) (isset($params['server']) ? $params['server'] : 0); +if (!empty($server_id) && function_exists("metaconsole_get_connection_by_id")) { + $server = metaconsole_get_connection_by_id($server_id); + + // Error connecting + if (metaconsole_connect($server) !== NOERR) { + echo ""; + echo ""; + ui_print_error_message(__('There was a problem connecting with the node')); + echo ""; + echo ""; + exit; + } +} + $user_language = get_user_language($config['id_user']); if (file_exists ('../../include/languages/'.$user_language.'.mo')) { $l10n = new gettext_reader (new CachedFileReader ('../../include/languages/'.$user_language.'.mo')); @@ -54,9 +58,6 @@ if (file_exists ('../../include/languages/'.$user_language.'.mo')) { echo ''; -$params_json = base64_decode((string) get_parameter('params')); -$params = json_decode($params_json, true); - $interface_name = (string) $params['interface_name']; $agent_id = (int) $params['agent_id']; $interface_traffic_modules = array( @@ -106,6 +107,25 @@ $interface_traffic_modules = array( '; $side_layer_params['body_text'] .= html_print_input_hidden("params", base64_encode($params_json), true); - if (isset($hash_connection_data)) { - $side_layer_params['body_text'] .= - html_print_input_hidden("loginhash", "auto", true); - $side_layer_params['body_text'] .= - html_print_input_hidden("loginhash_data", $loginhash_data, true); - $side_layer_params['body_text'] .= - html_print_input_hidden("loginhash_user", - str_rot13($loginhash_user), true); - } - // FORM TABLE $table = html_get_predefined_table('transparent', 2);