From dd2ace99e12f8b976a4f4f658f2ada8dd91b3c71 Mon Sep 17 00:00:00 2001 From: Tatiana Llorente Date: Fri, 11 Oct 2019 13:51:52 +0200 Subject: [PATCH] Check permissions to reset a network map - #4728 --- .../include/class/NetworkMap.class.php | 10 ++++++++ .../functions_pandora_networkmap.js | 23 +++++++++++++++++-- 2 files changed, 31 insertions(+), 2 deletions(-) diff --git a/pandora_console/include/class/NetworkMap.class.php b/pandora_console/include/class/NetworkMap.class.php index 0011167308..505d057665 100644 --- a/pandora_console/include/class/NetworkMap.class.php +++ b/pandora_console/include/class/NetworkMap.class.php @@ -2642,8 +2642,17 @@ class NetworkMap */ public function loadMapData() { + global $config; + $networkmap = $this->map; + // ACL. + $networkmap_write = check_acl( + $config['id_user'], + $networkmap['id_group'], + 'MW' + ); + $simulate = false; if (isset($networkmap['__simulated']) === false) { $networkmap['filter'] = json_decode( @@ -2711,6 +2720,7 @@ class NetworkMap $output .= 'var networkmap_center = [ '.$networkmap['center_x'].', '.$networkmap['center_y']."];\n"; $output .= 'var networkmap_dimensions = [ '.$networkmap['width'].', '.$networkmap['height']."];\n"; $output .= 'var enterprise_installed = '.((int) enterprise_installed()).";\n"; + $output .= 'var networkmap_write = '.$networkmap_write.";\n"; $output .= 'var node_radius = '.$networkmap['filter']['node_radius'].";\n"; $output .= 'var networkmap_holding_area_dimensions = '.json_encode($networkmap['filter']['holding_area']).";\n"; $output .= "var networkmap = {'nodes': [], 'links': []};\n"; diff --git a/pandora_console/include/javascript/functions_pandora_networkmap.js b/pandora_console/include/javascript/functions_pandora_networkmap.js index e5a0b87f7e..5d3477dca1 100644 --- a/pandora_console/include/javascript/functions_pandora_networkmap.js +++ b/pandora_console/include/javascript/functions_pandora_networkmap.js @@ -14,6 +14,7 @@ /* global holding_area_dimensions */ /* global networkmap_id */ /* global enterprise_installed */ +/* global networkmap_write */ /* global force */ /* global layer_graph_nodes */ /* global layer_graph_links */ @@ -2087,7 +2088,12 @@ function show_menu(item, data) { icon: "add_node", disabled: function() { if (enterprise_installed) { - return false; + // Check if user can write network maps. + if (networkmap_write) { + return false; + } else { + return true; + } } else { return true; } @@ -2099,6 +2105,14 @@ function show_menu(item, data) { items_list["center"] = { name: set_center_menu, icon: "center", + disabled: function() { + // Check if user can write network maps. + if (networkmap_write) { + return false; + } else { + return true; + } + }, callback: function(key, options) { set_center(networkmap_id); } @@ -2136,7 +2150,12 @@ function show_menu(item, data) { icon: "restart_map", disabled: function() { if (enterprise_installed) { - return false; + // Check if user can write network maps. + if (networkmap_write) { + return false; + } else { + return true; + } } else { return true; }