';
-if (check_acl ($config["id_user"], 0, "EW")) {
+if ($event_w || $event_m) {
$data[0] .= '
' .
html_print_image("images/disk.png", true, array("border" => '0', "title" => __('Save filter'), "alt" => __('Save filter'))) . ' ';
}
@@ -638,7 +638,7 @@ $events_filter .= $botom_update;
$events_filter .= ""; //This is the filter div
-if (defined('METACONSOLE'))
+if (is_metaconsole())
ui_toggle($events_filter, __("Show Options"));
else
ui_toggle($events_filter, __('Event control filter'), '', !$open_filter);
@@ -796,7 +796,7 @@ if (!empty($result)) {
if (!empty($result)) {
//~ Checking the event tags exactly. The event query filters approximated tags to keep events
//~ with several tags
- $acltags = tags_get_user_module_and_tags ($config['id_user'],'ER', true);
+ $acltags = tags_get_user_module_and_tags ($config['id_user'], $access, true);
foreach ($result as $key=>$event_data) {
$has_tags = events_checks_event_tags($event_data, $acltags);
diff --git a/pandora_console/operation/events/events_marquee.php b/pandora_console/operation/events/events_marquee.php
index 2b5f862d65..d75850174b 100644
--- a/pandora_console/operation/events/events_marquee.php
+++ b/pandora_console/operation/events/events_marquee.php
@@ -40,6 +40,11 @@ $config["id_user"] = $_SESSION["id_usuario"];
// Session locking concurrency speedup!
check_login ();
+$event_a = check_acl ($config['id_user'], 0, "ER");
+$event_w = check_acl ($config['id_user'], 0, "EW");
+$event_m = check_acl ($config['id_user'], 0, "EM");
+$access = ($event_a == true) ? 'ER' : (($event_w == true) ? 'EW' : (($event_m == true) ? 'EM' : 'ER'));
+
if (!isInACL($_SERVER['REMOTE_ADDR'])) {
db_pandora_audit("ACL Violation",
"Trying to access marquee without ACL Access");
@@ -47,7 +52,8 @@ if (!isInACL($_SERVER['REMOTE_ADDR'])) {
exit;
}
-$groups = users_get_groups ($config["id_user"], "ER");
+$groups = users_get_groups ($config["id_user"], $access);
+
//Otherwise select all groups the user has rights to.
if (!empty($groups)) {
$sql_group_filter = " AND id_grupo IN (".implode (",", array_keys ($groups)).")";
diff --git a/pandora_console/operation/events/export_csv.php b/pandora_console/operation/events/export_csv.php
index fdb391f6a2..932317266d 100644
--- a/pandora_console/operation/events/export_csv.php
+++ b/pandora_console/operation/events/export_csv.php
@@ -27,7 +27,7 @@ session_write_close ();
$config["id_user"] = $_SESSION["id_usuario"];
-if (! check_acl ($config["id_user"], 0, "ER") && ! check_acl ($config["id_user"], 0, "EW")) {
+if (! check_acl ($config["id_user"], 0, "ER") && ! check_acl ($config["id_user"], 0, "EW") && ! check_acl ($config["id_user"], 0, "EM")) {
exit;
}
@@ -105,7 +105,8 @@ echo chr (13);
$new = true;
while ($event = db_get_all_row_by_steps_sql($new, $result, $sql)) {
$new = false;
- if (!check_acl($config["id_user"], $event["id_grupo"], "ER") ||
+ if ((!check_acl($config["id_user"], $event["id_grupo"], "ER") &&
+ !check_acl($config["id_user"], $event["id_grupo"], "EW") && !check_acl($config["id_user"], $event["id_grupo"], "EM") ) ||
(!check_acl($config["id_user"], 0, "PM") && $event["event_type"] == 'system'))
continue;
diff --git a/pandora_console/operation/events/sound_events.php b/pandora_console/operation/events/sound_events.php
index 10e4216a66..5e0928c79c 100644
--- a/pandora_console/operation/events/sound_events.php
+++ b/pandora_console/operation/events/sound_events.php
@@ -32,7 +32,12 @@ global $config;
check_login ();
$config["id_user"] = $_SESSION["id_usuario"];
-if (! check_acl ($config['id_user'], 0, "ER")) {
+$event_a = check_acl ($config['id_user'], 0, "ER");
+$event_w = check_acl ($config['id_user'], 0, "EW");
+$event_m = check_acl ($config['id_user'], 0, "EM");
+$access = ($event_a == true) ? 'ER' : (($event_w == true) ? 'EW' : (($event_m == true) ? 'EM' : 'ER'));
+
+if (! check_acl ($config['id_user'], 0, "ER") && ! check_acl ($config['id_user'], 0, "EW") && ! check_acl ($config['id_user'], 0, "EM")) {
db_pandora_audit("ACL Violation","Trying to access event viewer");
require ("general/noaccess.php");
@@ -69,7 +74,7 @@ $table->size[1] = '90%';
$table->style[0] = 'font-weight: bold; vertical-align: top;';
$table->data[0][0] = __('Group');
-$table->data[0][1] = html_print_select_groups(false, "ER", true, 'group', '', 'changeGroup();', '', 0, true);
+$table->data[0][1] = html_print_select_groups(false, $access, true, 'group', '', 'changeGroup();', '', 0, true);
$table->data[1][0] = __('Type');
$table->data[1][1] = html_print_checkbox('alert_fired', 'alert_fired', true, true, false, 'changeType();') . __('Alert fired') . '
' .
html_print_checkbox('critical', 'critical', true, true, false, 'changeType();') . __('Monitor critical') . '
' .
diff --git a/pandora_console/operation/gis_maps/gis_map.php b/pandora_console/operation/gis_maps/gis_map.php
index 83f2aa61e5..a634e26e92 100644
--- a/pandora_console/operation/gis_maps/gis_map.php
+++ b/pandora_console/operation/gis_maps/gis_map.php
@@ -32,13 +32,13 @@ ui_print_page_header(__('GIS Maps'), "images/op_gis.png", false,
"configure_gis_map", false, $buttons);
$own_info = get_user_info($config['id_user']);
-if ($own_info['is_admin'] || check_acl ($config['id_user'], 0, "PM"))
+if ($own_info['is_admin'] || check_acl ($config['id_user'], 0, "MM"))
$display_default_column = true;
else
$display_default_column = false;
$edit_gis_maps = false;
-if (check_acl ($config['id_user'], 0, "IW")) {
+if (check_acl ($config['id_user'], 0, "MW") || check_acl ($config['id_user'], 0, "MM")) {
$edit_gis_maps = true;
}
@@ -128,7 +128,9 @@ $iterator = 0;
if ($maps !== false) {
foreach ($maps as $map) {
- if (!check_acl ($config["id_user"], $map["group_id"], "IR", 0, true)) {
+ if (!check_acl ($config["id_user"], $map["group_id"], "MR") &&
+ !check_acl ($config["id_user"], $map["group_id"], "MW") &&
+ !check_acl ($config["id_user"], $map["group_id"], "MM")) {
continue;
}
diff --git a/pandora_console/operation/gis_maps/render_view.php b/pandora_console/operation/gis_maps/render_view.php
index 2f7e1ca2c8..7b6f236542 100644
--- a/pandora_console/operation/gis_maps/render_view.php
+++ b/pandora_console/operation/gis_maps/render_view.php
@@ -29,7 +29,7 @@ $show_history = get_parameter ('show_history', 'n');
$map = db_get_row ('tgis_map', 'id_tgis_map', $idMap);
$confMap = gis_get_map_conf($idMap);
-if (! check_acl ($config['id_user'], $map['group_id'], "IR")) {
+if (! check_acl ($config['id_user'], $map['group_id'], "MR") && ! check_acl ($config['id_user'], $map['group_id'], "MW") && ! check_acl ($config['id_user'], $map['group_id'], "MM")) {
db_pandora_audit("ACL Violation", "Trying to access map builder");
require ("general/noaccess.php");
return;
@@ -103,7 +103,7 @@ else {
html_print_image ("images/normalscreen.png", true, array ("title" => __('Back to normal mode'))) . "";
}
-if (check_acl ($config["id_user"], $map['group_id'], "IW")) {
+if (check_acl ($config["id_user"], $map['group_id'], "MW") || check_acl ($config["id_user"], $map['group_id'], "MM")) {
$buttons['setup']['text'] = '
'.html_print_image ("images/setup.png", true, array ("title" => __('Setup'))).'';
$buttons['setup']['godmode'] = 1;
@@ -146,7 +146,7 @@ ui_print_page_header(__('Map') . " » " . __('Map') . " " . $map['map_
"images/op_gis.png", false, "", false, $buttons);
if ($config["pure"] == 0) {
- echo "
";
+ echo "
";
}
else {
echo "
";
diff --git a/pandora_console/operation/incidents/incident.php b/pandora_console/operation/incidents/incident.php
index 871b2e8836..7a57c86060 100755
--- a/pandora_console/operation/incidents/incident.php
+++ b/pandora_console/operation/incidents/incident.php
@@ -18,7 +18,12 @@ require_once ("include/functions_incidents.php");
check_login ();
-if (! check_acl ($config['id_user'], 0, "IR")) {
+$incident_r = check_acl ($config['id_user'], 0, "IR");
+$incident_w = check_acl ($config['id_user'], 0, "IW");
+$incident_m = check_acl ($config['id_user'], 0, "IM");
+$access = ($incident_r == true) ? 'IR' : (($incident_w == true) ? 'IW' : (($incident_m == true) ? 'IM' : 'IR'));
+
+if (!$incident_r && !$incident_w && !$incident_m) {
db_pandora_audit("ACL Violation","Trying to access incident viewer");
require ("general/noaccess.php");
exit;
diff --git a/pandora_console/operation/incidents/incident_detail.php b/pandora_console/operation/incidents/incident_detail.php
index 76de37d8c0..8aedc9de53 100755
--- a/pandora_console/operation/incidents/incident_detail.php
+++ b/pandora_console/operation/incidents/incident_detail.php
@@ -21,7 +21,7 @@ require_once ("include/functions_events.php"); //To get events group information
check_login ();
-if (! check_acl ($config["id_user"], 0, "IR")) {
+if (! check_acl ($config["id_user"], 0, "IR") && ! check_acl ($config["id_user"], 0, "IW") && ! check_acl ($config["id_user"], 0, "IM")) {
// Doesn't have access to this page
db_pandora_audit("ACL Violation", "Trying to access incident details");
require ("general/noaccess.php");
diff --git a/pandora_console/operation/incidents/incident_statistics.php b/pandora_console/operation/incidents/incident_statistics.php
index 7c6d1be25c..2290d5d242 100755
--- a/pandora_console/operation/incidents/incident_statistics.php
+++ b/pandora_console/operation/incidents/incident_statistics.php
@@ -21,7 +21,7 @@ require_once ($config["homedir"] . '/include/functions_graph.php');
check_login ();
-if (! check_acl ($config['id_user'], 0, "IR") == 1) {
+if (! check_acl ($config['id_user'], 0, "IR") && ! check_acl ($config['id_user'], 0, "IW") && ! check_acl ($config['id_user'], 0, "IM")) {
db_pandora_audit("ACL Violation", "Trying to access Incident section");
require ("general/noaccess.php");
exit;
diff --git a/pandora_console/operation/menu.php b/pandora_console/operation/menu.php
index faa0b323fc..e7d4528516 100644
--- a/pandora_console/operation/menu.php
+++ b/pandora_console/operation/menu.php
@@ -75,43 +75,44 @@ if (check_acl ($config['id_user'], 0, "AR")) {
if ($config['log_collector'] == 1) {
enterprise_hook ('log_collector_menu');
}
-
- //SNMP Console
+ //End of view agents
+}
+
+//SNMP Console
+$sub2 = array();
+if (check_acl ($config['id_user'], 0, "AR") || check_acl ($config['id_user'], 0, "AW") ) {
+ $sub2["operation/snmpconsole/snmp_view"]["text"] = __("SNMP console");
+ $sub2["operation/snmpconsole/snmp_browser"]["text"] = __("SNMP browser");
+ enterprise_hook ('snmpconsole_submenu');
+}
+if (check_acl ($config['id_user'], 0, "PM"))
+ $sub2["operation/snmpconsole/snmp_mib_uploader"]["text"] = __("MIB uploader");
+
+if (check_acl ($config['id_user'], 0, "LW") || check_acl ($config['id_user'], 0, "LM")) {
+ $sub2["godmode/snmpconsole/snmp_filters"]["text"] = __("SNMP filters");
+ $sub2["godmode/snmpconsole/snmp_trap_generator"]["text"] = __("SNMP trap generator");
+}
+
+if (!empty($sub2)) {
+ $sub["snmpconsole"]["sub2"] = $sub2;
$sub["snmpconsole"]["text"] = __('SNMP');
$sub["snmpconsole"]["id"] = 'SNMP';
$sub["snmpconsole"]["refr"] = 0;
$sub["snmpconsole"]["type"] = "direct";
$sub["snmpconsole"]["subtype"] = "nolink";
- $sub2 = array();
- $sub2["operation/snmpconsole/snmp_view"]["text"] = __("SNMP console");
- $sub2["operation/snmpconsole/snmp_browser"]["text"] = __("SNMP browser");
-
- if (check_acl ($config['id_user'], 0, "PM"))
- $sub2["operation/snmpconsole/snmp_mib_uploader"]["text"] = __("MIB uploader");
-
- if (check_acl ($config['id_user'], 0, "LW")) {
- $sub2["godmode/snmpconsole/snmp_filters"]["text"] = __("SNMP filters");
- $sub2["godmode/snmpconsole/snmp_trap_generator"]["text"] = __("SNMP trap generator");
- }
- enterprise_hook ('snmpconsole_submenu');
- $sub["snmpconsole"]["sub2"] = $sub2;
-
+}
+
+if (!empty($sub)) {
+ $menu_operation["estado"]["text"] = __('Monitoring');
+ $menu_operation["estado"]["sec2"] = "operation/agentes/tactical";
+ $menu_operation["estado"]["refr"] = 0;
+ $menu_operation["estado"]["id"] = "oper-agents";
$menu_operation["estado"]["sub"] = $sub;
-
- //End of view agents
-
}
-if (check_acl ($config['id_user'], 0, "AR") || check_acl ($config['id_user'], 0, "MR")) {
- //Start network view
- $menu_operation["network"]["text"] = __('Topology maps');
- $menu_operation["network"]["sec2"] = "operation/agentes/networkmap_list";
- $menu_operation["network"]["refr"] = 0;
- $menu_operation["network"]["id"] = "oper-networkconsole";
- $sub = array();
-}
-
-if (check_acl ($config['id_user'], 0, "MR")) {
+//Start network view
+$sub = array();
+if (check_acl ($config['id_user'], 0, "MR") || check_acl ($config['id_user'], 0, "MW") || check_acl ($config['id_user'], 0, "MM")) {
$sub["operation/agentes/networkmap_list"]["text"] = __('Network map');
$sub["operation/agentes/networkmap_list"]["id"] = 'Network map';
$sub["operation/agentes/networkmap_list"]["refr"] = 0;
@@ -133,7 +134,7 @@ enterprise_hook ('networkmap_console');
enterprise_hook ('services_menu');
-if (check_acl ($config['id_user'], 0, "VR")) {
+if (check_acl ($config['id_user'], 0, "VR") || check_acl ($config['id_user'], 0, "VW") || check_acl ($config['id_user'], 0, "VM")) {
//Visual console
$sub["godmode/reporting/map_builder"]["text"] = __('Visual console');
$sub["godmode/reporting/map_builder"]["id"] = 'Visual console';
@@ -155,7 +156,7 @@ if (check_acl ($config['id_user'], 0, "VR")) {
$firstLetterNameVisualToShow = array('_', ',', '[', '(');
foreach ($layouts as $layout) {
- if (! check_acl ($config["id_user"], $layout["id_group"], "AR")) {
+ if (!check_acl ($config['id_user'], 0, "VR") && ! check_acl ($config['id_user'], 0, "VW") && ! check_acl ($config['id_user'], 0, "VM")) {
continue;
}
$name = io_safe_output($layout['name']);
@@ -185,9 +186,11 @@ if (check_acl ($config['id_user'], 0, "VR")) {
if (!empty($sub2))
$sub["godmode/reporting/map_builder"]["sub2"] = $sub2;
}
-}
-// Agent read, Server read
-if (check_acl ($config['id_user'], 0, "AR")) {
+}
+
+
+if (check_acl ($config['id_user'], 0, "MR") || check_acl ($config['id_user'], 0, "MW") || check_acl ($config['id_user'], 0, "MM")) {
+
//INI GIS Maps
if ($config['activate_gis']) {
$sub["gismaps"]["text"] = __('GIS Maps');
@@ -225,15 +228,20 @@ if (check_acl ($config['id_user'], 0, "AR")) {
$sub["gismaps"]["sub2"] = $sub2;
}
- //END GIS Maps
+ //END GIS Maps
}
-if (check_acl ($config['id_user'], 0, "AR") || check_acl ($config['id_user'], 0, "MR"))
+if (!empty($sub)) {
+ $menu_operation["network"]["text"] = __('Topology maps');
+ $menu_operation["network"]["sec2"] = "operation/agentes/networkmap_list";
+ $menu_operation["network"]["refr"] = 0;
+ $menu_operation["network"]["id"] = "oper-networkconsole";
$menu_operation["network"]["sub"] = $sub;
+}
//End networkview
// Reports read
-if (check_acl ($config['id_user'], 0, "RR")) {
+if (check_acl ($config['id_user'], 0, "RR") || check_acl ($config['id_user'], 0, "RW") || check_acl ($config['id_user'], 0, "RM")) {
// Reporting
$menu_operation["reporting"]["text"] = __('Reporting');
$menu_operation["reporting"]["sec2"] = "godmode/reporting/reporting_builder";
@@ -281,15 +289,21 @@ if (check_acl ($config['id_user'], 0, "ER")
$sub["operation/events/event_statistics"]["text"] = __('Statistics');
$sub["operation/events/event_statistics"]["id"] = 'Statistics';
- //RSS
+ //If ip doesn't is in list of allowed IP, isn't show this options
include_once ('include/functions_api.php');
if (isInACL($_SERVER['REMOTE_ADDR'])) {
$pss = get_user_info($config['id_user']);
$hashup = md5($config['id_user'].$pss['password']);
+ //RSS
$sub["operation/events/events_rss.php?user=".$config['id_user']."&hashup=".$hashup."&search=&event_type=&severity=-1&status=3&id_group=0&refr=0&id_agent=0&pagination=20&group_rep=1&event_view_hr=8&id_user_ack=0&tag_with=&tag_without=&filter_only_alert-1&offset=0&toogle_filter=no&filter_id=0&id_name=&id_group=0&history=0§ion=list&open_filter=0&pure="]["text"] = __('RSS');
$sub["operation/events/events_rss.php?user=".$config['id_user']."&hashup=".$hashup."&search=&event_type=&severity=-1&status=3&id_group=0&refr=0&id_agent=0&pagination=20&group_rep=1&event_view_hr=8&id_user_ack=0&tag_with=&tag_without=&filter_only_alert-1&offset=0&toogle_filter=no&filter_id=0&id_name=&id_group=0&history=0§ion=list&open_filter=0&pure="]["id"] = 'RSS';
$sub["operation/events/events_rss.php?user=".$config['id_user']."&hashup=".$hashup."&search=&event_type=&severity=-1&status=3&id_group=0&refr=0&id_agent=0&pagination=20&group_rep=1&event_view_hr=8&id_user_ack=0&tag_with=&tag_without=&filter_only_alert-1&offset=0&toogle_filter=no&filter_id=0&id_name=&id_group=0&history=0§ion=list&open_filter=0&pure="]["type"] = "direct";
+
+ //Marquee
+ $sub["operation/events/events_marquee.php"]["text"] = __('Marquee');
+ $sub["operation/events/events_marquee.php"]["id"] = 'Marquee';
+ $sub["operation/events/events_marquee.php"]["type"] = "direct";
}
//CSV
@@ -297,11 +311,6 @@ if (check_acl ($config['id_user'], 0, "ER")
$sub["operation/events/export_csv.php?search=&event_type=&severity=-1&status=3&id_group=0&refr=0&id_agent=0&pagination=20&group_rep=1&event_view_hr=8&id_user_ack=0&tag_with=&tag_without=&filter_only_alert-1&offset=0&toogle_filter=no&filter_id=0&id_name=&id_group=0&history=0§ion=list&open_filter=0&pure="]["id"] = 'CSV File';
$sub["operation/events/export_csv.php?search=&event_type=&severity=-1&status=3&id_group=0&refr=0&id_agent=0&pagination=20&group_rep=1&event_view_hr=8&id_user_ack=0&tag_with=&tag_without=&filter_only_alert-1&offset=0&toogle_filter=no&filter_id=0&id_name=&id_group=0&history=0§ion=list&open_filter=0&pure="]["type"] = "direct";
- //Marquee
- $sub["operation/events/events_marquee.php"]["text"] = __('Marquee');
- $sub["operation/events/events_marquee.php"]["id"] = 'Marquee';
- $sub["operation/events/events_marquee.php"]["type"] = "direct";
-
//Sound Events
$javascript = "javascript: window.open('operation/events/sound_events.php');";
$javascript = 'javascript: alert(111);';
@@ -319,7 +328,7 @@ if (check_acl ($config['id_user'], 0, "ER")
window.open(url,
'',
- 'width=475, height=275, resizable=yes, toolbar=no, location=no, directories=no, status=no, menubar=no');
+ 'width=400, height=350, resizable=yes, toolbar=no, location=no, directories=no, status=no, menubar=no');
}