Fixed problems with menus and acl enterprise

(cherry picked from commit 67f1765248)
This commit is contained in:
m-lopez-f 2016-05-18 11:40:20 +02:00
parent 964da4ffe9
commit 22edaf6f08
5 changed files with 54 additions and 23 deletions

View File

@ -230,7 +230,7 @@ $filters['offset'] = $offset;
$filters['limit'] = $pagination;
$own_info = get_user_info ($config['id_user']);
if (!defined('METACONSOLE')) {
$url = 'index.php?sec=reporting&sec2=godmode/reporting/map_builder&pagination='.$pagination;
$url = 'index.php?sec=network&sec2=godmode/reporting/map_builder&pagination='.$pagination;
}
else {
$url = 'index.php?sec=screen&sec2=screens/screens&action=visualmap&pagination='.$pagination;
@ -267,7 +267,7 @@ else {
$data = array ();
if (!defined('METACONSOLE')) {
$data[0] = '<a href="index.php?sec=reporting&amp;sec2=operation/visual_console/render_view&amp;id='.
$data[0] = '<a href="index.php?sec=network&amp;sec2=operation/visual_console/render_view&amp;id='.
$map['id'].'&amp;refr=' . $refr . '">'.$map['name'].'</a>';
}
else {
@ -282,8 +282,8 @@ else {
if ($vconsole_write || $vconsole_manage) {
if (!defined('METACONSOLE')) {
$data[3] = '<a class="copy_visualmap" href="index.php?sec=reporting&amp;sec2=godmode/reporting/map_builder&amp;id_layout='.$map['id'].'&amp;copy_layout=1">'.html_print_image ("images/copy.png", true).'</a>';
$data[4] = '<a class="delete_visualmap" href="index.php?sec=reporting&amp;sec2=godmode/reporting/map_builder&amp;id_layout='.$map['id'].'&amp;delete_layout=1">'.html_print_image ("images/cross.png", true).'</a>';
$data[3] = '<a class="copy_visualmap" href="index.php?sec=network&amp;sec2=godmode/reporting/map_builder&amp;id_layout='.$map['id'].'&amp;copy_layout=1">'.html_print_image ("images/copy.png", true).'</a>';
$data[4] = '<a class="delete_visualmap" href="index.php?sec=network&amp;sec2=godmode/reporting/map_builder&amp;id_layout='.$map['id'].'&amp;delete_layout=1">'.html_print_image ("images/cross.png", true).'</a>';
}
else {
$data[3] = '<a class="copy_visualmap" href="index.php?sec=screen&sec2=screens/screens&action=visualmap&pure=' . $pure . '&id_layout='.$map['id'].'&amp;copy_layout=1">'.html_print_image ("images/copy.png", true).'</a>';
@ -303,7 +303,7 @@ if ($maps) {
if ($maps || defined("METACONSOLE")) {
if ($vconsoles_write || $vconsoles_manage) {
if (!defined('METACONSOLE')) {
echo '<form action="index.php?sec=reporting&amp;sec2=godmode/reporting/visual_console_builder" method="post">';
echo '<form action="index.php?sec=network&amp;sec2=godmode/reporting/visual_console_builder" method="post">';
}
else {
echo '<form action="index.php?sec=screen&sec2=screens/screens&action=visualmap&action2=new&operation=new_visualmap&tab=data&pure=' . $pure . '" method="post">';

View File

@ -623,8 +623,8 @@ else
$view_refresh = '300';
if (!defined('METACONSOLE')) {
$url_base = 'index.php?sec=reporting&sec2=godmode/reporting/visual_console_builder&action=';
$url_view = 'index.php?sec=reporting&sec2=operation/visual_console/render_view&id=' . $idVisualConsole . '&refr=' . $view_refresh;
$url_base = 'index.php?sec=network&sec2=godmode/reporting/visual_console_builder&action=';
$url_view = 'index.php?sec=network&sec2=operation/visual_console/render_view&id=' . $idVisualConsole . '&refr=' . $view_refresh;
}
else {
$url_base = 'index.php?operation=edit_visualmap&sec=screen&sec2=screens/screens&action=visualmap&pure=' . $pure . '&action2=';
@ -637,7 +637,7 @@ $hash = md5($config["dbpass"] . $idVisualConsole . $config["id_user"]);
$buttons = array();
$buttons['consoles_list'] = array('active' => false,
'text' => '<a href="index.php?sec=reporting&sec2=godmode/reporting/map_builder&refr=' . $refr . '">' .
'text' => '<a href="index.php?sec=network&sec2=godmode/reporting/map_builder&refr=' . $refr . '">' .
html_print_image ("images/visual_console.png", true, array ("title" => __('Visual consoles list'))) .'</a>');
$buttons['public_link'] = array('active' => false,
'text' => '<a href="' . ui_get_full_url('operation/visual_console/public_console.php?hash='.$hash.'&id_layout='.$idVisualConsole.'&id_user='.$config["id_user"]) . '">'.

View File

@ -43,7 +43,11 @@ function menu_print_menu (&$menu) {
}
//Open list of menu
echo '<ul'.(isset ($menu['class']) ? ' class="'.$menu['class'].'"' : '').'>';
echo '<ul' .
(isset ($menu['class']) ?
' class="'.$menu['class'].'"' :
'') .
'>';
foreach ($menu as $mainsec => $main) {
$extensionInMenuParameter = (string) get_parameter ('extension_in_menu','');
@ -59,9 +63,9 @@ function menu_print_menu (&$menu) {
if ($mainsec == 'class')
continue;
if (enterprise_hook ('enterprise_acl', array ($config['id_user'], $mainsec)) == false)
continue;
//~ if (enterprise_hook ('enterprise_acl', array ($config['id_user'], $mainsec)) == false)
//~ continue;
if (! isset ($main['id'])) {
$id = 'menu_'.++$idcounter;
}
@ -108,7 +112,10 @@ function menu_print_menu (&$menu) {
$subsec2 = io_safe_output($subsec2);
// Choose valid suboptions (sec2)
if (enterprise_hook ('enterprise_acl', array ($config['id_user'], $mainsec, $subsec2)) == false) {
$check_2 = true;
if (isset($sub['sub2']))
$check_2 = false;
if (enterprise_hook ('enterprise_acl', array ($config['id_user'], $mainsec, $subsec2, $check_2)) == false) {
continue;
}
@ -129,7 +136,7 @@ function menu_print_menu (&$menu) {
//This hacks avoid empty delimiter error when sec2 is not provided.
if (!$sec2) {
$sec2=" ";
$sec2 = " ";
}
//Check if some submenu was selected to mark this (the parent) as selected
@ -168,6 +175,8 @@ function menu_print_menu (&$menu) {
}
}
//Set class
if (($sec2 == $subsec2 || $allsec2 == $subsec2 ||
$selected_submenu2) && isset ($sub[$subsec2]["options"])
@ -190,10 +199,17 @@ function menu_print_menu (&$menu) {
else
$visible = false;
}
elseif (isset($sub['pages']) && (array_search($sec2, $sub['pages']) !== false)) {
$class .= 'submenu_selected selected';
$menu_selected = true;
$selected = true;
$visible = true;
}
else {
//Else it's not selected
$class .= 'submenu_not_selected';
}
if (! isset ($sub["refr"])) {
$sub["refr"] = 0;
}
@ -285,8 +301,16 @@ function menu_print_menu (&$menu) {
$title = '';
}
$submenu_output .= '<a href="index.php?'.$extensionInMenu.'sec='.$secUrl.'&amp;sec2='.$subsec2.($sub["refr"] ? '&amp;refr=' .
$sub["refr"] : '').$link_add.'"' . $title . '><div class="' . $sub_tree_class . '">'.$sub["text"].'</div></a>';
$submenu_output .= '<a href="index.php?' .
$extensionInMenu .
'sec=' . $secUrl . '&amp;' .
'sec2=' . $subsec2 .
($sub["refr"] ?
'&amp;refr=' . $sub["refr"] :
'') .
$link_add . '"' . $title . '>' .
'<div class="' . $sub_tree_class . '">'.$sub["text"].'</div>' .
'</a>';
if (isset($sub['sub2'])) {
//$submenu_output .= html_print_image("include/styles/images/toggle.png", true, array("class" => "toggle", "alt" => "toogle"));
@ -298,7 +322,7 @@ function menu_print_menu (&$menu) {
if (isset($sub['sub2'])) {
//Display if father is selected
$display = "style='display:none'";
$display = "style='display:none;'";
if ($selected) {
$display = "";
@ -455,9 +479,12 @@ function menu_add_extras(&$menu) {
$menu_extra['galertas']['sub']['godmode/alerts/configure_alert_template']['text'] = __('Configure alert template');
$menu_extra['network']['sub']['operation/agentes/networkmap']['text'] = __('Manage network map');
$menu_extra['network']['sub']['operation/visual_console/render_view']['text'] = __('View visual console');
$menu_extra['network']['sub']['godmode/reporting/visual_console_builder']['text'] = __('Builder visual console');
$menu_extra['eventos']['sub']['godmode/events/events']['text'] = __('Administration events');
$menu_extra['reporting']['sub']['operation/reporting/reporting_viewer']['text'] = __('View reporting');
$menu_extra['reporting']['sub']['operation/visual_console/render_view']['text'] = __('View visual console');
$menu_extra['reporting']['sub']['godmode/reporting/graph_builder']['text'] = __('Manage custom graphs');
$menu_extra['reporting']['sub']['enterprise/dashboard/dashboard_replicate']['text'] = __('Copy dashboard');
@ -481,7 +508,9 @@ function menu_add_extras(&$menu) {
$menu_extra['estado']['sub']['godmode/snmpconsole/snmp_alert']['text'] = __('SNMP alerts');
$menu_extra['estado']['sub']['godmode/snmpconsole/snmp_filters']['text'] = __('SNMP filters');
$menu_extra['estado']['sub']['enterprise/godmode/snmpconsole/snmp_trap_editor']['text'] = __('SNMP trap editor');
$menu_extra['estado']['sub']['godmode/snmpconsole/snmp_trap_generator']['text'] = __('SNMP trap generator');
$menu_extra['estado']['sub']['snmpconsole']['sub2']['godmode/snmpconsole/snmp_trap_generator']['text'] = __('SNMP trap generator');
$menu_extra['estado']['sub']['snmpconsole']['sub2']['operation/snmpconsole/snmp_view']['text'] = __('SNMP console');
$menu_extra['workspace']['sub']['operation/incidents/incident_detail']['text'] = __('Manage incident');

View File

@ -89,8 +89,10 @@ if (check_acl ($config['id_user'], 0, "AR")) {
$sub2["operation/snmpconsole/snmp_view"]["text"] = __("SNMP console");
$sub2["operation/snmpconsole/snmp_browser"]["text"] = __("SNMP browser");
$sub2["operation/snmpconsole/snmp_mib_uploader"]["text"] = __("MIB uploader");
$sub2["godmode/snmpconsole/snmp_filters"]["text"] = __("SNMP filters");
$sub2["godmode/snmpconsole/snmp_trap_generator"]["text"] = __("SNMP trap generator");
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;

View File

@ -91,12 +91,12 @@ if (! $vconsole_read) {
$options = array();
$options['consoles_list']['text'] =
'<a href="index.php?sec=reporting&sec2=godmode/reporting/map_builder&refr=' . $refr . '">' .
'<a href="index.php?sec=network&sec2=godmode/reporting/map_builder&refr=' . $refr . '">' .
html_print_image ("images/visual_console.png", true,
array ("title" => __('Visual consoles list'))) . '</a>';
if ($vconsole_write || $vconsole_manage) {
$url_base = 'index.php?sec=reporting&sec2=godmode/reporting/visual_console_builder&action=';
$url_base = 'index.php?sec=network&sec2=godmode/reporting/visual_console_builder&action=';
$hash = md5($config["dbpass"] . $id_layout . $config["id_user"]);