diff --git a/pandora_console/include/class/Tree.class.php b/pandora_console/include/class/Tree.class.php
index 05804d0be5..02b719369b 100644
--- a/pandora_console/include/class/Tree.class.php
+++ b/pandora_console/include/class/Tree.class.php
@@ -46,6 +46,7 @@ class Tree {
global $config;
include_once($config['homedir']."/include/functions_servers.php");
+ include_once($config['homedir']."/include/functions_modules.php");
if (defined("METACONSOLE"))
enterprise_include_once("meta/include/functions_ui_meta.php");
@@ -1306,31 +1307,35 @@ class Tree {
$module['serverTypeHTML'] = servers_show_type($module['server_type']);
// Link to the Module graph
- $graphType = return_graphtype($module['id_module_type']);
- $winHandle = dechex(crc32($module['id'] . $module['name']));
+ $group_id = (int) modules_get_agent_group($module['id']);
+ $module["showGraphs"] = 0;
- if (!defined('METACONSOLE')) {
- $moduleGraphURL = $config['homeurl'] .
- "/operation/agentes/stat_win.php?" .
- "type=$graphType&" .
- "period=" . SECONDS_1DAY . "&" .
- "id=" . $module['id'] . "&" .
- "label=" . rawurlencode(urlencode(base64_encode($module['name']))) . "&" .
- "refresh=" . SECONDS_10MINUTES;
- }
- else if (!empty($server)) {
- $moduleGraphURL = ui_meta_get_url_console_child(
- $server, null, null, null, null,
- "operation/agentes/stat_win.php?" .
- "type=$graphType&" .
- "period=" . SECONDS_1DAY . "&" .
- "id=" . $module["id"] . "&" .
- "label=" . rawurlencode(urlencode(base64_encode($module['name']))) . "&" .
- "refresh=" . SECONDS_10MINUTES . "&" .
- "avg_only=1");
+ // ACL
+ if (!empty($group_id) {
+ $module["showGraphs"] = (int) check_acl($config['id_user'], $group_id, "RR");
}
- if (!empty($moduleGraphURL)) {
+ if ($module["showGraphs"]) {
+ $graphType = return_graphtype($module['id_module_type']);
+ $url = ui_get_full_url("operation/agentes/stat_win.php", false, false, false);
+ $winHandle = dechex(crc32($module['id'].$module['name']));
+
+ $graph_params = array(
+ "type" => $graphType,
+ "period" => SECONDS_1DAY,
+ "id" => $module['id'],
+ "label" => rawurlencode(urlencode(base64_encode($module['name']))),
+ "refresh" => SECONDS_10MINUTES
+ );
+
+ if (defined('METACONSOLE') && !empty($server)) {
+ // Set the server id
+ $graph_params["server"] = $module['serverID'];
+ }
+
+ $graph_params_str = http_build_query($graph_params);
+ $moduleGraphURL = "$url?$graph_params_str";
+
$module['moduleGraph'] = array(
'url' => $moduleGraphURL,
'handle' => $winHandle
diff --git a/pandora_console/include/functions_events.php b/pandora_console/include/functions_events.php
index 6a0b141eac..4802c73ea0 100644
--- a/pandora_console/include/functions_events.php
+++ b/pandora_console/include/functions_events.php
@@ -2033,35 +2033,41 @@ function events_page_details ($event, $server = "") {
}
$table_details->data[] = $data;
- $data = array();
- $data[0] = '
'.__('Graph').'
';
- $module_module_type = -1;
- if (isset($module["module_type"])) {
- $module_module_type = $module["module_type"];
- }
- $graph_type = return_graphtype ($module_module_type);
-
- $win_handle=dechex(crc32($module["id_agente_modulo"] .
- $module["nombre"]));
-
- $module_module_name = '';
- if (isset($module["module_name"])) {
- $module_module_name = $module["module_name"];
- }
- $link ="winopeng('" . $serverstring .
- "operation/agentes/stat_win.php?type=" . $graph_type."&" .
- "period=" . SECONDS_1DAY . "&" .
- "id=" . $module["id_agente_modulo"] . "&" .
- "label=" . rawurlencode(
- urlencode(
- base64_encode($module_module_name))) . $hashstring . "&" .
- (!empty($server) ? "avg_only=1&" : "") .
- "refresh=" . SECONDS_10MINUTES . "','day_".$win_handle."')";
-
- $data[1] = '';
- $data[1] .= html_print_image('images/chart_curve.png',true);
- $data[1] .= '';
- $table_details->data[] = $data;
+ if (check_acl($config['id_user'], $agent['id_grupo'], "RR")) {
+ $data = array();
+ $data[0] = ''.__('Graph').'
';
+
+ $module_type = -1;
+ if (isset($module["module_type"])) {
+ $module_type = $module["module_type"];
+ }
+ $graph_type = return_graphtype ($module_type);
+ $url = ui_get_full_url("operation/agentes/stat_win.php", false, false, false);
+ $handle = dechex(crc32($module["id_agente_modulo"].$module["nombre"]));
+ $win_handle = "day_$handle";
+
+ $graph_params = array(
+ "type" => $graph_type,
+ "period" => SECONDS_1DAY,
+ "id" => $module["id_agente_modulo"],
+ "label" => rawurlencode(urlencode(base64_encode($module["nombre"]))),
+ "refresh" => SECONDS_10MINUTES
+ );
+
+ if (defined('METACONSOLE')) {
+ // Set the server id
+ $graph_params["server"] = $server["id"];
+ }
+
+ $graph_params_str = http_build_query($graph_params);
+
+ $link = "winopeng('$url?$graph_params_str','$win_handle')";
+
+ $data[1] = '';
+ $data[1] .= html_print_image('images/chart_curve.png',true);
+ $data[1] .= '';
+ $table_details->data[] = $data;
+ }
}
$data = array();
diff --git a/pandora_console/include/javascript/tree/TreeController.js b/pandora_console/include/javascript/tree/TreeController.js
index 07f869b553..6656a2b418 100644
--- a/pandora_console/include/javascript/tree/TreeController.js
+++ b/pandora_console/include/javascript/tree/TreeController.js
@@ -355,48 +355,50 @@ TreeController = {
$content.append($serverTypeImage);
}
-
- // Graph pop-up
- if (typeof element.moduleGraph != 'undefined') {
- var $graphImage = $('
');
- $graphImage
- .addClass('module-graph')
- .click(function (e) {
- e.preventDefault();
-
- try {
- winopeng(element.moduleGraph.url, element.moduleGraph.handle);
- }
- catch (error) {
- // console.log(error);
- }
- });
-
- $content.append($graphImage);
- }
- // Data pop-up
- if (typeof element.id != 'undefined' && !isNaN(element.id)) {
+ if (typeof element.showGraphs != 'undefined' && element.showGraphs != 0) {
+ // Graph pop-up
+ if (typeof element.moduleGraph != 'undefined') {
+ var $graphImage = $('
');
+ $graphImage
+ .addClass('module-graph')
+ .click(function (e) {
+ e.preventDefault();
- var $dataImage = $('
');
- $dataImage
- .addClass('module-data')
- .click(function (e) {
- e.preventDefault();
+ try {
+ winopeng(element.moduleGraph.url, element.moduleGraph.handle);
+ }
+ catch (error) {
+ // console.log(error);
+ }
+ });
- try {
- var serverName = element.serverName.length > 0 ? element.serverName : '';
- if ($("#module_details_window").length > 0)
- show_module_detail_dialog(element.id, '', serverName, 0, 86400);
- }
- catch (error) {
- // console.log(error);
- }
- });
+ $content.append($graphImage);
+ }
+
+ // Data pop-up
+ if (typeof element.id != 'undefined' && !isNaN(element.id)) {
- $content.append($dataImage);
+ var $dataImage = $('
');
+ $dataImage
+ .addClass('module-data')
+ .click(function (e) {
+ e.preventDefault();
+
+ try {
+ var serverName = element.serverName.length > 0 ? element.serverName : '';
+ if ($("#module_details_window").length > 0)
+ show_module_detail_dialog(element.id, '', serverName, 0, 86400);
+ }
+ catch (error) {
+ // console.log(error);
+ }
+ });
+
+ $content.append($dataImage);
+ }
}
// Alerts
diff --git a/pandora_console/operation/agentes/status_monitor.php b/pandora_console/operation/agentes/status_monitor.php
index 21b44a71a7..dae7768172 100644
--- a/pandora_console/operation/agentes/status_monitor.php
+++ b/pandora_console/operation/agentes/status_monitor.php
@@ -1197,11 +1197,11 @@ foreach ($result as $row) {
$data[7] = "";
- if ($row['history_data'] == 1) {
+ if ($row['history_data'] == 1 && check_acl($config['id_user'], $row['id_group'], "RR") {
$graph_type = return_graphtype ($row["module_type"]);
- $url = "operation/agentes/stat_win.php";
+ $url = ui_get_full_url("operation/agentes/stat_win.php", false, false, false);
$handle = dechex(crc32($row["id_agente_modulo"].$row["module_name"]));
$win_handle = "day_$handle";
@@ -1214,8 +1214,6 @@ foreach ($result as $row) {
);
if (defined('METACONSOLE') && isset($row["server_id"])) {
- // Force the search of this url from the pandora_console's root homeurl
- $url = "../../$url";
// Set the server id
$graph_params["server"] = $row["server_id"];
}