From c28fd1f4d8eea11e71162ee4d4eb121aa0b67d5c Mon Sep 17 00:00:00 2001 From: m-lopez-f Date: Tue, 10 Feb 2015 14:54:42 +0100 Subject: [PATCH] Fixed problem with delete maps when user is admin and have all permisions and other user have RM and RW and delete with RW rule --- .../operation/agentes/networkmap_list.php | 40 +++++++++---------- 1 file changed, 19 insertions(+), 21 deletions(-) diff --git a/pandora_console/operation/agentes/networkmap_list.php b/pandora_console/operation/agentes/networkmap_list.php index a1cb7e8998..e7eef0f3c4 100644 --- a/pandora_console/operation/agentes/networkmap_list.php +++ b/pandora_console/operation/agentes/networkmap_list.php @@ -39,29 +39,28 @@ if (is_ajax()) { $delete_networkmaps = (bool) get_parameter('delete_networkmaps'); if ($delete_networkmaps) { if ( check_acl ($config['id_user'], 0, "RW") || check_acl ($config['id_user'], 0, "RM") ) { - if (check_acl ($config['id_user'], 0, "RW")) { - $result = false; - $results = array(); - $ids_networkmap = (array) get_parameter ('ids_networkmap'); - - foreach ($ids_networkmap as $id) { - $results[$id] = (bool) networkmap_delete_user_networkmap($config['id_user'], $id); - } - echo json_encode($results); - return; - }else{ - if (check_acl ($config['id_user'], 0, "RM")) { + if (check_acl ($config['id_user'], 0, "RM")) { $result = false; $results = array(); $ids_networkmap = (array) get_parameter ('ids_networkmap'); - foreach ($ids_networkmap as $id) { $results[$id] = (bool) networkmap_delete_networkmap($id); } echo json_encode($results); return; } - } + else{ + if (check_acl ($config['id_user'], 0, "RW")) { + $result = false; + $results = array(); + $ids_networkmap = (array) get_parameter ('ids_networkmap'); + foreach ($ids_networkmap as $id) { + $results[$id] = (bool) networkmap_delete_user_networkmap($config['id_user'], $id); + } + echo json_encode($results); + return; + } + } }else{ db_pandora_audit("ACL Violation", "Trying to access Networkmap deletion"); @@ -69,7 +68,6 @@ if (is_ajax()) { return; } } - return; } @@ -82,19 +80,19 @@ $id_networkmap = get_parameter ('id_networkmap', 0); $delete_networkmap = get_parameter ('delete_networkmap', 0); if ($delete_networkmap) { - if (check_acl ($config['id_user'], 0, "RW")) { + if (is_user_admin ($config['id_user'])){ + $result = networkmap_delete_networkmap($id_networkmap); + } + elseif (check_acl ($config['id_user'], 0, "RM")) { + $result = networkmap_delete_networkmap($id_networkmap); + }elseif (check_acl ($config['id_user'], 0, "RW")) { $result = networkmap_delete_user_networkmap($config['id_user'], $id_networkmap); - }else{ - if (check_acl ($config['id_user'], 0, "RM")) { - $result = networkmap_delete_networkmap($id_networkmap); - } } $message = ui_print_result_message ($result, __('Network map deleted successfully'), __('Could not delete network map'), '', true); echo $message; - $id_networkmap = 0; }