diff --git a/pandora_console/operation/agentes/networkmap_list.php b/pandora_console/operation/agentes/networkmap_list.php index aac56b6c8a..2bb25c7211 100644 --- a/pandora_console/operation/agentes/networkmap_list.php +++ b/pandora_console/operation/agentes/networkmap_list.php @@ -38,35 +38,29 @@ 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, "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; - } + + $results = array(); + $ids_networkmap = (array) get_parameter('ids_networkmap'); + + foreach ($ids_networkmap as $id) { + $store_group = (int) db_get_value('store_group', 'tnetwork_map', 'id_networkmap',$id_networkmap); + + if (check_acl ($config['id_user'], $store_group, "RM")) { + $results[$id] = (bool) networkmap_delete_networkmap($id); + } + else if (check_acl ($config['id_user'], $store_group, "RW")) { + $results[$id] = (bool) networkmap_delete_user_networkmap($config['id_user'], $id); } - }else{ - db_pandora_audit("ACL Violation", - "Trying to access Networkmap deletion"); - echo json_encode(-1); - return; } + + // None permission + if (!empty($ids_networkmap) && empty($results)) { + db_pandora_audit("ACL Violation", "Trying to access Networkmap deletion"); + $results = -1; + } + + echo json_encode($results); + return; } return; }