diff --git a/pandora_console/extensions/db_status.php b/pandora_console/extensions/db_status.php index bda57705ae..c623f612e9 100755 --- a/pandora_console/extensions/db_status.php +++ b/pandora_console/extensions/db_status.php @@ -44,7 +44,7 @@ function extension_db_status() { "images/extensions.png", false, "", true, ""); - if (! check_acl ($config['id_user'], 0, "PM")) { + if (! check_acl ($config['id_user'], 0, "DM")) { db_pandora_audit("ACL Violation", "Trying to access db status"); require ("general/noaccess.php"); @@ -362,5 +362,5 @@ function extension_db_status_execute_sql_file($url, $connection) { } extensions_add_godmode_function('extension_db_status'); -extensions_add_godmode_menu_option(__('DB Status'), 'PM', 'gextensions', null, "v1r1", 'gdbman'); +extensions_add_godmode_menu_option(__('DB Status'), 'DM', 'gextensions', null, "v1r1", 'gdbman'); ?> \ No newline at end of file diff --git a/pandora_console/extensions/extension_uploader.php b/pandora_console/extensions/extension_uploader.php index 1a64ebb05d..e359d16855 100644 --- a/pandora_console/extensions/extension_uploader.php +++ b/pandora_console/extensions/extension_uploader.php @@ -87,6 +87,6 @@ function extension_uploader_extensions() { echo ""; } -extensions_add_godmode_menu_option(__('Extension uploader'), 'AM', null, null, "v1r1"); +extensions_add_godmode_menu_option(__('Extension uploader'), 'PM', null, null, "v1r1"); extensions_add_godmode_function('extension_uploader_extensions'); ?> diff --git a/pandora_console/extensions/users_connected.php b/pandora_console/extensions/users_connected.php index 116df50ed6..02a4fecf15 100644 --- a/pandora_console/extensions/users_connected.php +++ b/pandora_console/extensions/users_connected.php @@ -120,12 +120,7 @@ function users_extension_main_god ($god = true) { } } extensions_add_godmode_menu_option (__('Users connected'), 'UM','gusuarios',"users/icon.png", "v1r1"); - -if (isset($config["id_user"])) { - if (check_acl ($config["id_user"], 0, "UM")) { - extensions_add_operation_menu_option(__('Users connected'), 'workspace',"users/icon.png", "v1r1"); - } -} +extensions_add_operation_menu_option(__('Users connected'), 'workspace',"users/icon.png", "v1r1", '', "UM"); extensions_add_godmode_function('users_extension_main_god'); extensions_add_main_function('users_extension_main'); diff --git a/pandora_console/godmode/db/db_refine.php b/pandora_console/godmode/db/db_refine.php index 35b8b08e60..c2ddba0bab 100644 --- a/pandora_console/godmode/db/db_refine.php +++ b/pandora_console/godmode/db/db_refine.php @@ -83,7 +83,7 @@ echo '
'; echo ''.__('Source agent').'

'; $agent_selected = get_parameter_post ("origen", 0); -$agents = agents_get_group_agents (array_keys (users_get_groups ($config["id_user"], "AW"))); +$agents = agents_get_group_agents (array_keys (users_get_groups ($config["id_user"], "DM"))); html_print_select ($agents, "origen", $agent_selected, 'javascript:this.form.update_agent.click();', __('No agent selected'), '0', false, false, false, '', false, 'max-width:300px !important;'); diff --git a/pandora_console/godmode/menu.php b/pandora_console/godmode/menu.php index 130c26c1d9..c30fd358a5 100644 --- a/pandora_console/godmode/menu.php +++ b/pandora_console/godmode/menu.php @@ -88,11 +88,6 @@ if (check_acl ($config['id_user'], 0, "UM")) { $menu_godmode["gusuarios"]["sub"] = $sub; } - -$menu_godmode["gmodules"]["text"] = __('Configuration'); -$menu_godmode["gmodules"]["sec2"] = "godmode/modules/manage_network_templates"; -$menu_godmode["gmodules"]["id"] = "god-configuration"; - $sub = array (); if (check_acl ($config['id_user'], 0, "PM")) { $sub["godmode/modules/manage_network_components"]["text"] = __('Network components'); @@ -126,7 +121,12 @@ if (check_acl ($config['id_user'], 0, "AW")) { $sub["gmassive"]["sub2"] = $sub2; } -$menu_godmode["gmodules"]["sub"] = $sub; +if (!empty($sub)) { + $menu_godmode["gmodules"]["text"] = __('Configuration'); + $menu_godmode["gmodules"]["sec2"] = "godmode/modules/manage_network_templates"; + $menu_godmode["gmodules"]["id"] = "god-configuration"; + $menu_godmode["gmodules"]["sub"] = $sub; +} if (check_acl ($config['id_user'], 0, "LM") || check_acl ($config['id_user'], 0, "AD")) { $menu_godmode["galertas"]["text"] = __('Alerts'); @@ -275,27 +275,33 @@ if (check_acl ($config['id_user'], 0, "PM")) { $menu_godmode["gsetup"]["sub"] = $sub; } -if (check_acl ($config['id_user'], 0, "PM")) { +if (check_acl ($config['id_user'], 0, "PM") || check_acl ($config['id_user'], 0, "DM")) { $menu_godmode["gextensions"]["text"] = __('Admin tools'); $menu_godmode["gextensions"]["sec2"] = "godmode/extensions"; $menu_godmode["gextensions"]["id"] = "god-extensions"; $sub = array (); - // Audit //meter en extensiones - $sub["godmode/admin_access_logs"]["text"] = __('System audit log'); - $sub["godmode/admin_access_logs"]["id"] = 'System audit log'; - $sub["godmode/setup/links"]["text"] = __('Links'); - $sub["godmode/setup/links"]["id"] = 'Links'; - - - $sub["godmode/extensions"]["sub2"] = $sub2; + if (check_acl ($config['id_user'], 0, "PM")) { + // Audit //meter en extensiones + $sub["godmode/admin_access_logs"]["text"] = __('System audit log'); + $sub["godmode/admin_access_logs"]["id"] = 'System audit log'; + $sub["godmode/setup/links"]["text"] = __('Links'); + $sub["godmode/setup/links"]["id"] = 'Links'; + $sub["extras/pandora_diag"]["text"] = __('Diagnostic info'); + $sub["extras/pandora_diag"]["id"] = 'Diagnostic info'; + $sub["godmode/setup/news"]["text"] = __('Site news'); + $sub["godmode/setup/news"]["id"] = 'Site news'; + $sub["godmode/setup/file_manager"]["text"] = __('File manager'); + $sub["godmode/setup/file_manager"]["id"] = 'File manager'; + } if (check_acl ($config['id_user'], 0, "DM")) { $sub["gdbman"]["text"] = __('DB maintenance'); $sub["gdbman"]["id"] = 'DB maintenance'; $sub["gdbman"]["type"] = "direct"; $sub["gdbman"]["subtype"] = "nolink"; + $sub2 = array (); $sub2["godmode/db/db_info"]["text"] = __('DB information'); $sub2["godmode/db/db_purge"]["text"] = __('Database purge'); @@ -305,103 +311,88 @@ if (check_acl ($config['id_user'], 0, "PM")) { $sub["gdbman"]["sub2"] = $sub2; } - $sub["extras/pandora_diag"]["text"] = __('Diagnostic info'); - $sub["extras/pandora_diag"]["id"] = 'Diagnostic info'; - - $sub["godmode/setup/news"]["text"] = __('Site news'); - $sub["godmode/setup/news"]["id"] = 'Site news'; - - $sub["godmode/setup/file_manager"]["text"] = __('File manager'); - $sub["godmode/setup/file_manager"]["id"] = 'File manager'; - - $sub["godmode/setup/snmp_wizard"]["text"] = __('SNMP Wizard'); - $sub["godmode/setup/snmp_wizard"]["id"] = 'SNMP Wizard'; $menu_godmode["gextensions"]["sub"] = $sub; } - -if (check_acl ($config['id_user'], 0, "PM")) { - if (is_array ($config['extensions'])) { +if (is_array ($config['extensions'])) { + + $sub = array (); + $sub2 = array (); + + foreach ($config['extensions'] as $extension) { + //If no godmode_menu is a operation extension + if ($extension['godmode_menu'] == '') { + continue; + } - $sub = array (); - $sub["godmode/extensions"]["text"] = __('Extension manager'); - $sub["godmode/extensions"]["id"] = 'Extension manager'; + $extmenu = $extension['godmode_menu']; + if ($extmenu["name"] == 'DB interface' && !check_acl ($config['id_user'], 0, "DM")) { + continue; + } - $sub2 = array (); + //Check the ACL for this user + if (! check_acl ($config['id_user'], 0, $extmenu['acl'])) { + continue; + } - foreach ($config['extensions'] as $extension) { - //If no godmode_menu is a operation extension - if ($extension['godmode_menu'] == '') { - continue; - } - - $extmenu = $extension['godmode_menu']; - - if ($extmenu["name"] == 'DB interface' && !check_acl ($config['id_user'], 0, "DM")) { - continue; - } - - //Check the ACL for this user - if (! check_acl ($config['id_user'], 0, $extmenu['acl'])) { - continue; - } - - //Check if was displayed inside other menu - if ($extension['godmode_menu']["fatherId"] == '') { - $sub2[$extmenu["sec2"]]["text"] = __($extmenu["name"]); - $sub2[$extmenu["sec2"]]["id"] = $extmenu["name"]; - $sub2[$extmenu["sec2"]]["refr"] = 0; - } - else { - if (array_key_exists('fatherId',$extmenu)) { - if (strlen($extmenu['fatherId']) > 0) { - if (array_key_exists('subfatherId',$extmenu)) { - if (strlen($extmenu['subfatherId']) > 0) { - $menu_godmode[$extmenu['fatherId']]['sub'][$extmenu['subfatherId']]['sub2'][$extmenu['sec2']]["text"] = __($extmenu['name']); - $menu_godmode[$extmenu['fatherId']]['sub'][$extmenu['subfatherId']]['sub2'][$extmenu['sec2']]["id"] = $extmenu['name']; - $menu_godmode[$extmenu['fatherId']]['sub'][$extmenu['subfatherId']]['sub2'][$extmenu['sec2']]["refr"] = 0; - $menu_godmode[$extmenu['fatherId']]['sub'][$extmenu['subfatherId']]['sub2'][$extmenu['sec2']]["icon"] = $extmenu['icon']; - $menu_godmode[$extmenu['fatherId']]['sub'][$extmenu['subfatherId']]['sub2'][$extmenu['sec2']]["sec"] = 'extensions'; - $menu_godmode[$extmenu['fatherId']]['sub'][$extmenu['subfatherId']]['sub2'][$extmenu['sec2']]["extension"] = true; - $menu_godmode[$extmenu['fatherId']]['sub'][$extmenu['subfatherId']]['sub2'][$extmenu['sec2']]["enterprise"] = $extension['enterprise']; - $menu_godmode[$extmenu['fatherId']]['hasExtensions'] = true; - } - else { - $menu_godmode[$extmenu['fatherId']]['sub'][$extmenu['sec2']]["text"] = __($extmenu['name']); - $menu_godmode[$extmenu['fatherId']]['sub'][$extmenu['sec2']]["id"] = $extmenu['name']; - $menu_godmode[$extmenu['fatherId']]['sub'][$extmenu['sec2']]["refr"] = 0; - $menu_godmode[$extmenu['fatherId']]['sub'][$extmenu['sec2']]["icon"] = $extmenu['icon']; - if ($extmenu["name"] == 'Cron jobs') - $menu_godmode[$extmenu['fatherId']]['sub'][$extmenu['sec2']]["sec"] = 'extensions'; - else - $menu_godmode[$extmenu['fatherId']]['sub'][$extmenu['sec2']]["sec"] = 'gextensions'; - $menu_godmode[$extmenu['fatherId']]['sub'][$extmenu['sec2']]["extension"] = true; - $menu_godmode[$extmenu['fatherId']]['sub'][$extmenu['sec2']]["enterprise"] = $extension['enterprise']; - $menu_godmode[$extmenu['fatherId']]['hasExtensions'] = true; - } + //Check if was displayed inside other menu + if ($extension['godmode_menu']["fatherId"] == '') { + $sub2[$extmenu["sec2"]]["text"] = __($extmenu["name"]); + $sub2[$extmenu["sec2"]]["id"] = $extmenu["name"]; + $sub2[$extmenu["sec2"]]["refr"] = 0; + } + else { + if (array_key_exists('fatherId',$extmenu)) { + if (strlen($extmenu['fatherId']) > 0) { + if (array_key_exists('subfatherId',$extmenu)) { + if (strlen($extmenu['subfatherId']) > 0) { + $menu_godmode[$extmenu['fatherId']]['sub'][$extmenu['subfatherId']]['sub2'][$extmenu['sec2']]["text"] = __($extmenu['name']); + $menu_godmode[$extmenu['fatherId']]['sub'][$extmenu['subfatherId']]['sub2'][$extmenu['sec2']]["id"] = $extmenu['name']; + $menu_godmode[$extmenu['fatherId']]['sub'][$extmenu['subfatherId']]['sub2'][$extmenu['sec2']]["refr"] = 0; + $menu_godmode[$extmenu['fatherId']]['sub'][$extmenu['subfatherId']]['sub2'][$extmenu['sec2']]["icon"] = $extmenu['icon']; + $menu_godmode[$extmenu['fatherId']]['sub'][$extmenu['subfatherId']]['sub2'][$extmenu['sec2']]["sec"] = 'extensions'; + $menu_godmode[$extmenu['fatherId']]['sub'][$extmenu['subfatherId']]['sub2'][$extmenu['sec2']]["extension"] = true; + $menu_godmode[$extmenu['fatherId']]['sub'][$extmenu['subfatherId']]['sub2'][$extmenu['sec2']]["enterprise"] = $extension['enterprise']; + $menu_godmode[$extmenu['fatherId']]['hasExtensions'] = true; } else { $menu_godmode[$extmenu['fatherId']]['sub'][$extmenu['sec2']]["text"] = __($extmenu['name']); $menu_godmode[$extmenu['fatherId']]['sub'][$extmenu['sec2']]["id"] = $extmenu['name']; $menu_godmode[$extmenu['fatherId']]['sub'][$extmenu['sec2']]["refr"] = 0; $menu_godmode[$extmenu['fatherId']]['sub'][$extmenu['sec2']]["icon"] = $extmenu['icon']; - $menu_godmode[$extmenu['fatherId']]['sub'][$extmenu['sec2']]["sec"] = 'gextensions'; + if ($extmenu["name"] == 'Cron jobs') + $menu_godmode[$extmenu['fatherId']]['sub'][$extmenu['sec2']]["sec"] = 'extensions'; + else + $menu_godmode[$extmenu['fatherId']]['sub'][$extmenu['sec2']]["sec"] = 'gextensions'; $menu_godmode[$extmenu['fatherId']]['sub'][$extmenu['sec2']]["extension"] = true; $menu_godmode[$extmenu['fatherId']]['sub'][$extmenu['sec2']]["enterprise"] = $extension['enterprise']; $menu_godmode[$extmenu['fatherId']]['hasExtensions'] = true; } } + else { + $menu_godmode[$extmenu['fatherId']]['sub'][$extmenu['sec2']]["text"] = __($extmenu['name']); + $menu_godmode[$extmenu['fatherId']]['sub'][$extmenu['sec2']]["id"] = $extmenu['name']; + $menu_godmode[$extmenu['fatherId']]['sub'][$extmenu['sec2']]["refr"] = 0; + $menu_godmode[$extmenu['fatherId']]['sub'][$extmenu['sec2']]["icon"] = $extmenu['icon']; + $menu_godmode[$extmenu['fatherId']]['sub'][$extmenu['sec2']]["sec"] = 'gextensions'; + $menu_godmode[$extmenu['fatherId']]['sub'][$extmenu['sec2']]["extension"] = true; + $menu_godmode[$extmenu['fatherId']]['sub'][$extmenu['sec2']]["enterprise"] = $extension['enterprise']; + $menu_godmode[$extmenu['fatherId']]['hasExtensions'] = true; + } } } } - - - + } + + + if (!empty($sub2)) $sub["godmode/extensions"]["sub2"] = $sub2; - - + + if (!empty($sub)) { + $sub["godmode/extensions"]["text"] = __('Extension manager'); + $sub["godmode/extensions"]["id"] = 'Extension manager'; $submenu = array_merge($menu_godmode["gextensions"]["sub"],$sub); $menu_godmode["gextensions"]["sub"] = $submenu; } @@ -452,7 +443,6 @@ if (check_acl ($config['id_user'], 0, "PM")) { $sub["godmode/update_manager/update_manager&tab=messages"]["id"] = 'Messages'; } - $menu_godmode["messages"]["sub"] = $sub; } diff --git a/pandora_console/include/functions_extensions.php b/pandora_console/include/functions_extensions.php index afea388b58..5345ba560b 100644 --- a/pandora_console/include/functions_extensions.php +++ b/pandora_console/include/functions_extensions.php @@ -351,7 +351,7 @@ function extensions_load_extensions ($process_login) { * @param string subfatherId Id of the parent submenu item for the current extension * @param string icon Path to the icon image (18x18 px). If this parameter is blank then predefined icon will be used */ -function extensions_add_operation_menu_option ($name, $fatherId = null, $icon = null, $version="N/A", $subfatherId = null) { +function extensions_add_operation_menu_option ($name, $fatherId = null, $icon = null, $version="N/A", $subfatherId = null, $acl = 'AR') { global $config; global $extension_file; @@ -361,7 +361,7 @@ function extensions_add_operation_menu_option ($name, $fatherId = null, $icon = call, we are sure it will be set. */ $option_menu['name'] = $name; - + $option_menu['acl'] = $acl; $extension = &$config['extensions'][$extension_file]; $option_menu['sec2'] = $extension['dir'] . '/' . mb_substr ($extension_file, 0, -4); diff --git a/pandora_console/include/styles/menu.css b/pandora_console/include/styles/menu.css index 5685dda646..81b2dab777 100644 --- a/pandora_console/include/styles/menu.css +++ b/pandora_console/include/styles/menu.css @@ -204,9 +204,6 @@ li:hover ul { display: block; } #subicon_god-setup { top: -140px; } -#subicon_god-extensions { - top: -262px; -} #subBulk_operations { top: -210px; } diff --git a/pandora_console/operation/menu.php b/pandora_console/operation/menu.php index f0da3a9cec..26b13b4ab2 100644 --- a/pandora_console/operation/menu.php +++ b/pandora_console/operation/menu.php @@ -65,14 +65,11 @@ if (check_acl ($config['id_user'], 0, "AR")) { $sub["view"]["sub2"] = $sub2; enterprise_hook ('inventory_menu'); - - // Fix: Netflow interfaces have to check RR ACL - if (check_acl ($config['id_user'], 0, "RR")) { - if ($config['activate_netflow']) { - $sub["operation/netflow/nf_live_view"]["text"] = __('Netflow Live View'); - $sub["operation/netflow/nf_live_view"]["id"] = 'Netflow Live View'; - $sub["operation/netflow/nf_live_view"]["refr"] = 0; - } + + if ($config['activate_netflow']) { + $sub["operation/netflow/nf_live_view"]["text"] = __('Netflow Live View'); + $sub["operation/netflow/nf_live_view"]["id"] = 'Netflow Live View'; + $sub["operation/netflow/nf_live_view"]["refr"] = 0; } if ($config['log_collector'] == 1) { @@ -88,7 +85,10 @@ if (check_acl ($config['id_user'], 0, "AR")) { $sub2 = array(); $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"); + + 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"); @@ -102,18 +102,16 @@ if (check_acl ($config['id_user'], 0, "AR")) { } -if (check_acl ($config['id_user'], 0, "AR")) { - - +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")) { $sub["operation/agentes/networkmap_list"]["text"] = __('Network map'); $sub["operation/agentes/networkmap_list"]["id"] = 'Network map'; $sub["operation/agentes/networkmap_list"]["refr"] = 0; @@ -129,11 +127,13 @@ if (check_acl ($config['id_user'], 0, "AR")) { $sub["operation/maps/networkmap_list"]["pages"] = array( "operation/maps/networkmap" ); - - enterprise_hook ('networkmap_console'); - - enterprise_hook ('services_menu'); - +} + +enterprise_hook ('networkmap_console'); + +enterprise_hook ('services_menu'); + +if (check_acl ($config['id_user'], 0, "VR")) { //Visual console $sub["godmode/reporting/map_builder"]["text"] = __('Visual console'); $sub["godmode/reporting/map_builder"]["id"] = 'Visual console'; @@ -144,7 +144,7 @@ if (check_acl ($config['id_user'], 0, "AR")) { $layouts = db_get_all_rows_in_table ('tlayout', 'name'); $sub2 = array (); - + if ($layouts === false) { $layouts = array (); } @@ -185,7 +185,7 @@ if (check_acl ($config['id_user'], 0, "AR")) { if (!empty($sub2)) $sub["godmode/reporting/map_builder"]["sub2"] = $sub2; } - +} // Agent read, Server read if (check_acl ($config['id_user'], 0, "AR")) { @@ -234,6 +234,10 @@ if (check_acl ($config['id_user'], 0, "AR")) { } +if (check_acl ($config['id_user'], 0, "AR") || check_acl ($config['id_user'], 0, "MR")) + $menu_operation["network"]["sub"] = $sub; +//End networkview + // Reports read if (check_acl ($config['id_user'], 0, "RR")) { // Reporting @@ -261,13 +265,14 @@ if (check_acl ($config['id_user'], 0, "RR")) { enterprise_hook ('dashboard_menu'); enterprise_hook ('reporting_godmenu'); - $menu_operation["reporting"]["sub"] = $sub; //End reporting } // Events reading -if (check_acl ($config['id_user'], 0, "ER")) { +if (check_acl ($config['id_user'], 0, "ER") + || check_acl ($config['id_user'], 0, "EW") + || check_acl ($config['id_user'], 0, "EM")) { // Events $menu_operation["eventos"]["text"] = __('Events'); $menu_operation["eventos"]["refr"] = 0; @@ -345,7 +350,7 @@ $sub["operation/users/webchat"]["refr"] = 0; //Incidents -if (check_acl ($config['id_user'], 0, "IR") == 1) { +if (check_acl ($config['id_user'], 0, "IR")) { $temp_sec2 = $sec2; if($config['integria_enabled']) { $sec2 = "incident"; @@ -366,7 +371,7 @@ if (check_acl ($config['id_user'], 0, "IR") == 1) { "operation/integria_incidents"); $sub2 = array (); - $sub2['operation/incidents/incident']["text"] = _("List of Incidents"); + $sub2['operation/incidents/incident']["text"] = __("List of Incidents"); $sub2[$sec2sub]["text"] = __('Statistics'); $sub[$sec2]["sub2"] = $sub2; @@ -392,72 +397,73 @@ $menu_operation["workspace"]["sub"] = $sub; // Rest of options, all with AR privilege (or should events be with incidents?) -if (check_acl ($config['id_user'], 0, "AR")) { - - // Extensions menu additions - if (is_array ($config['extensions'])) { - $menu_operation["extensions"]["text"] = __('Tools'); - $menu_operation["extensions"]["sec2"] = "operation/extensions"; - $menu_operation["extensions"]["id"] = "oper-extensions"; - - $sub = array (); - $sub2 = array (); - +//~ if (check_acl ($config['id_user'], 0, "AR")) { + +// Extensions menu additions +if (is_array ($config['extensions'])) { + + + $sub = array (); + $sub2 = array (); + + if (check_acl ($config['id_user'], 0, "RR")) { $sub["operation/agentes/exportdata"]["text"] = __('Export data'); $sub["operation/agentes/exportdata"]["id"] = 'Export data'; $sub["operation/agentes/exportdata"]["subsecs"] = array("operation/agentes/exportdata"); - + } + + if (check_acl ($config['id_user'], 0, "AR") || check_acl ($config['id_user'], 0, "AD")) { $sub["godmode/agentes/planned_downtime.list"]["text"] = __('Scheduled downtime'); $sub["godmode/agentes/planned_downtime.list"]["id"] = 'Scheduled downtime'; - - if (check_acl ($config['id_user'], 0, "PM")) { - $sub["operation/servers/recon_view"]["text"] = __('Recon view'); - $sub["operation/servers/recon_view"]["id"] = 'Recon view'; - $sub["operation/servers/recon_view"]["refr"] = 0; + } + + if (check_acl ($config['id_user'], 0, "PM")) { + $sub["operation/servers/recon_view"]["text"] = __('Recon view'); + $sub["operation/servers/recon_view"]["id"] = 'Recon view'; + $sub["operation/servers/recon_view"]["refr"] = 0; + } + + foreach ($config["extensions"] as $extension) { + //If no operation_menu is a godmode extension + if ($extension["operation_menu"] == '') { + continue; } - foreach ($config["extensions"] as $extension) { - //If no operation_menu is a godmode extension - if ($extension["operation_menu"] == '') { + //Check the ACL for this user + if (! check_acl ($config['id_user'], 0, $extension['operation_menu']['acl'])) { + continue; + } + + $extension_menu = $extension["operation_menu"]; + if ($extension["operation_menu"]["name"] == 'Matrix' && + ( !check_acl ($config['id_user'], 0, "ER") || + !check_acl ($config['id_user'], 0, "EW") || + !check_acl ($config['id_user'], 0, "EM") )) { + continue; + } + //Check if was displayed inside other menu + if ($extension["operation_menu"]["fatherId"] == '') { + if ($extension_menu['name'] == 'Update manager') { continue; } - - $extension_menu = $extension["operation_menu"]; - - //Check if was displayed inside other menu - if ($extension["operation_menu"]["fatherId"] == '') { - if ($extension_menu['name'] == 'Update manager') { - continue; - } - $sub[$extension_menu["sec2"]]["text"] = $extension_menu["name"]; - $sub[$extension_menu["sec2"]]["id"] = $extension_menu["name"]; - $sub[$extension_menu["sec2"]]["refr"] = 0; - } - else { - if (array_key_exists('fatherId',$extension_menu)) { - // Check that extension father ID exists previously on the menu - if ((strlen($extension_menu['fatherId']) > 0)) { - if (array_key_exists('subfatherId',$extension_menu)) { - if ((strlen($extension_menu['subfatherId']) > 0)) { - $menu_operation[$extension_menu['fatherId']]['sub'][$extension_menu['subfatherId']]['sub2'][$extension_menu['sec2']]["text"] = __($extension_menu['name']); - $menu_operation[$extension_menu['fatherId']]['sub'][$extension_menu['subfatherId']]['sub2'][$extension_menu['sec2']]["id"] = $extension_menu['name']; - $menu_operation[$extension_menu['fatherId']]['sub'][$extension_menu['subfatherId']]['sub2'][$extension_menu['sec2']]["refr"] = 0; - $menu_operation[$extension_menu['fatherId']]['sub'][$extension_menu['subfatherId']]['sub2'][$extension_menu['sec2']]["icon"] = $extension_menu['icon']; - $menu_operation[$extension_menu['fatherId']]['sub'][$extension_menu['subfatherId']]['sub2'][$extension_menu['sec2']]["sec"] = 'extensions'; - $menu_operation[$extension_menu['fatherId']]['sub'][$extension_menu['subfatherId']]['sub2'][$extension_menu['sec2']]["extension"] = true; - $menu_operation[$extension_menu['fatherId']]['sub'][$extension_menu['subfatherId']]['sub2'][$extension_menu['sec2']]["enterprise"] = $extension['enterprise']; - $menu_operation[$extension_menu['fatherId']]['hasExtensions'] = true; - } - else { - $menu_operation[$extension_menu['fatherId']]['sub'][$extension_menu['sec2']]["text"] = __($extension_menu['name']); - $menu_operation[$extension_menu['fatherId']]['sub'][$extension_menu['sec2']]["id"] = $extension_menu['name']; - $menu_operation[$extension_menu['fatherId']]['sub'][$extension_menu['sec2']]["refr"] = 0; - $menu_operation[$extension_menu['fatherId']]['sub'][$extension_menu['sec2']]["icon"] = $extension_menu['icon']; - $menu_operation[$extension_menu['fatherId']]['sub'][$extension_menu['sec2']]["sec"] = 'extensions'; - $menu_operation[$extension_menu['fatherId']]['sub'][$extension_menu['sec2']]["extension"] = true; - $menu_operation[$extension_menu['fatherId']]['sub'][$extension_menu['sec2']]["enterprise"] = $extension['enterprise']; - $menu_operation[$extension_menu['fatherId']]['hasExtensions'] = true; - } + $sub[$extension_menu["sec2"]]["text"] = $extension_menu["name"]; + $sub[$extension_menu["sec2"]]["id"] = $extension_menu["name"]; + $sub[$extension_menu["sec2"]]["refr"] = 0; + } + else { + if (array_key_exists('fatherId',$extension_menu)) { + // Check that extension father ID exists previously on the menu + if ((strlen($extension_menu['fatherId']) > 0)) { + if (array_key_exists('subfatherId',$extension_menu)) { + if ((strlen($extension_menu['subfatherId']) > 0)) { + $menu_operation[$extension_menu['fatherId']]['sub'][$extension_menu['subfatherId']]['sub2'][$extension_menu['sec2']]["text"] = __($extension_menu['name']); + $menu_operation[$extension_menu['fatherId']]['sub'][$extension_menu['subfatherId']]['sub2'][$extension_menu['sec2']]["id"] = $extension_menu['name']; + $menu_operation[$extension_menu['fatherId']]['sub'][$extension_menu['subfatherId']]['sub2'][$extension_menu['sec2']]["refr"] = 0; + $menu_operation[$extension_menu['fatherId']]['sub'][$extension_menu['subfatherId']]['sub2'][$extension_menu['sec2']]["icon"] = $extension_menu['icon']; + $menu_operation[$extension_menu['fatherId']]['sub'][$extension_menu['subfatherId']]['sub2'][$extension_menu['sec2']]["sec"] = 'extensions'; + $menu_operation[$extension_menu['fatherId']]['sub'][$extension_menu['subfatherId']]['sub2'][$extension_menu['sec2']]["extension"] = true; + $menu_operation[$extension_menu['fatherId']]['sub'][$extension_menu['subfatherId']]['sub2'][$extension_menu['sec2']]["enterprise"] = $extension['enterprise']; + $menu_operation[$extension_menu['fatherId']]['hasExtensions'] = true; } else { $menu_operation[$extension_menu['fatherId']]['sub'][$extension_menu['sec2']]["text"] = __($extension_menu['name']); @@ -470,13 +476,31 @@ if (check_acl ($config['id_user'], 0, "AR")) { $menu_operation[$extension_menu['fatherId']]['hasExtensions'] = true; } } + else { + $menu_operation[$extension_menu['fatherId']]['sub'][$extension_menu['sec2']]["text"] = __($extension_menu['name']); + $menu_operation[$extension_menu['fatherId']]['sub'][$extension_menu['sec2']]["id"] = $extension_menu['name']; + $menu_operation[$extension_menu['fatherId']]['sub'][$extension_menu['sec2']]["refr"] = 0; + $menu_operation[$extension_menu['fatherId']]['sub'][$extension_menu['sec2']]["icon"] = $extension_menu['icon']; + $menu_operation[$extension_menu['fatherId']]['sub'][$extension_menu['sec2']]["sec"] = 'extensions'; + $menu_operation[$extension_menu['fatherId']]['sub'][$extension_menu['sec2']]["extension"] = true; + $menu_operation[$extension_menu['fatherId']]['sub'][$extension_menu['sec2']]["enterprise"] = $extension['enterprise']; + $menu_operation[$extension_menu['fatherId']]['hasExtensions'] = true; + } } } } - + } + + + if (!empty($sub)) { + $menu_operation["extensions"]["text"] = __('Tools'); + $menu_operation["extensions"]["sec2"] = "operation/extensions"; + $menu_operation["extensions"]["id"] = "oper-extensions"; $menu_operation["extensions"]["sub"] = $sub; + } } +//~ } // Save operation menu array to use in operation/extensions.php view $operation_menu_array = $menu_operation;