array( "label" => S_MONITORING, "node_perm" => PERM_READ_LIST, "default_page_id" => 0, "pages"=>array( array("url"=>"dashboard.php" ,"label"=>S_DASHBOARD ), array("url"=>"overview.php" ,"label"=>S_OVERVIEW ), array("url"=>"httpmon.php" ,"label"=>S_WEB , "sub_pages"=>array("httpdetails.php") ), array("url"=>"latest.php" ,"label"=>S_LATEST_DATA , "sub_pages"=>array("history.php","chart.php") ), array("url"=>"tr_status.php" ,"label"=>S_TRIGGERS , "sub_pages"=>array("tr_events.php","acknow.php","tr_comments.php", "chart4.php","scripts_exec.php") ), array("url"=>"queue.php" ,"label"=>S_QUEUE ), array("url"=>"events.php" ,"label"=>S_EVENTS ), array("url"=>"actions.php" ,"label"=>S_ACTIONS ), array("url"=>"maps.php" ,"label"=>S_MAPS , "sub_pages"=>array("map.php") ), array("url"=>"charts.php" ,"label"=>S_GRAPHS , "sub_pages"=>array("chart2.php") ), array("url"=>"screens.php" ,"label"=>S_SCREENS ), array("url"=>"discovery.php" ,"label"=>S_DISCOVERY , "user_type"=>USER_TYPE_ZABBIX_ADMIN), array("url"=>"srv_status.php" ,"label"=>S_IT_SERVICES , 'forse_disable_subnodes' => true, "sub_pages"=>array("report3.php","chart_sla.php","chart5.php") ), array("url"=>"vtext.php"), array("url"=>"chart3.php") ) ), "cm"=>array( "label" => S_INVENTORY, "node_perm" => PERM_READ_LIST, "default_page_id" => 0, "pages"=>array( array("url"=>"hostprofiles.php" ,"label"=>S_HOSTS ) ) ), "reports"=>array( "label" => S_REPORTS, "node_perm" => PERM_READ_LIST, "default_page_id" => 0, "pages"=>array( array("url"=>"report1.php", "label"=>S_STATUS_OF_ZABBIX ), array("url"=>"report2.php", "label"=>S_AVAILABILITY_REPORT ), array("url"=>"report5.php", "label"=>S_TRIGGERS_TOP_100 ) ) ), "config"=>array( "label" => S_CONFIGURATION, "user_type" => USER_TYPE_ZABBIX_ADMIN, "node_perm" => PERM_READ_LIST, "default_page_id" => 0, "forse_disable_subnodes"=> true, "pages"=>array( array("url"=>"config.php" ,"label"=>S_GENERAL, "sub_pages"=>array("image.php") ), array("url"=>"httpconf.php" ,"label"=>S_WEB, "sub_pages"=>array("popup_httpstep.php") ), array("url"=>"hosts.php" ,"label"=>S_HOSTS), array("url"=>"items.php" ,"label"=>S_ITEMS, "sub_pages"=>array("tr_logform.php") ), array("url"=>"triggers.php" ,"label"=>S_TRIGGERS, "sub_pages"=>array("popup_trexpr.php") ), array("url"=>"actionconf.php" ,"label"=>S_ACTIONS), array("url"=>"sysmaps.php" ,"label"=>S_MAPS, "sub_pages"=>array("sysmap.php","popup_link_tr.php") ), array("url"=>"graphs.php" ,"label"=>S_GRAPHS, "sub_pages"=>array("popup_gitem.php") ), array("url"=>"screenconf.php" ,"label"=>S_SCREENS, "sub_pages"=>array("screenedit.php") ), array("url"=>"services.php" ,"label"=>S_IT_SERVICES, "sub_pages"=>array("services_form.php") ), array('url'=>'discoveryconf.php','label'=>S_DISCOVERY), array("url"=>"exp_imp.php" ,"label"=>S_EXPORT_IMPORT), array("url"=>"popup.php") ) ), "admin"=>array( "label" => S_ADMINISTRATION, "user_type" => USER_TYPE_SUPER_ADMIN, "node_perm" => PERM_READ_WRITE, "default_page_id" => 1, "forse_disable_subnodes"=> true, "pages"=>array( ZBX_DISTRIBUTED ? array("url"=>"nodes.php" ,"label"=>S_NODES) : null , array("url"=>"users.php" ,"label"=>S_USERS , "sub_pages"=>array("popup_media.php", "popup_usrgrp.php","popup_right.php","popup_users.php") ), array("url"=>"media_types.php" ,"label"=>S_MEDIA_TYPES ), array("url"=>"scripts.php" ,"label"=>S_SCRIPTS), array("url"=>"audit.php" ,"label"=>S_AUDIT ), array("url"=>"report4.php" ,"label"=>S_NOTIFICATIONS ), array("url"=>"locales.php" ,"label"=>S_LOCALES ), array("url"=>"instal.php" ,"label"=>S_INSTALLATION , "sub_pages"=>array("setup.php","warning.php")) ) ), "login"=>array( "label" => S_LOGIN, "default_page_id" => 0, "forse_disable_subnodes"=> true, "pages"=>array( array("url"=>"index.php", "sub_pages"=>array("profile.php") ) ) ) ); $main_menu_row = array(); $sub_menu_row = array(); foreach($ZBX_MENU as $label=>$sub) { // Check permissions for main menu unset($deny); if(!defined('ZBX_PAGE_NO_AUTHERIZATION')) { if(isset($sub['user_type'])) { if($USER_DETAILS['type'] < $sub['user_type']) $deny = true; } if(isset($sub['node_perm'])){ if ( 0 == count(get_accessible_nodes_by_user( $USER_DETAILS, $sub['node_perm'], null, PERM_RES_IDS_ARRAY, get_current_nodeid(false)))) { $deny = true; } } if($label=='login'){ $deny = true; /* if(isset($USER_DETAILS['sessionid'])) $sub['label'] = S_LOGOUT; else unset($deny); */ } } // End of main menu permissions checking unset($menu_url); foreach($sub['pages'] as $id => $sub_pages){ if(!defined('ZBX_PAGE_NO_AUTHERIZATION')){ if(isset($sub_pages['user_type'])){ if($USER_DETAILS['type'] < $sub_pages['user_type']){ unset($sub['pages'][$id]); continue; } } if(isset($sub_pages['node_perm'])){ if ( 0 == count(get_accessible_nodes_by_user( $USER_DETAILS,$sub_pages['node_perm'],null, PERM_RES_IDS_ARRAY,get_current_nodeid(false)))) { unset($sub['pages'][$id]); continue; } } } if(isset($page_exist)) continue; if($page['file'] == $sub_pages['url']){ if(isset($sub_pages['label'])){ $menu_url = $sub_pages['url']; } $page_exist = true; $sub['pages'][$id]['active'] = true; /* mark as active */ } else if(isset($sub_pages['sub_pages'])){ if(str_in_array($page['file'], $sub_pages['sub_pages'])){ if(isset($sub_pages['label'])){ $menu_url = $sub_pages['url']; } $page_exist = true; $sub['pages'][$id]['active'] = true; /* mark as active */ } } if ( isset($page_exist) && ( isset($sub['forse_disable_subnodes']) || isset($sub_pages['forse_disable_subnodes']) ) && !defined('ZBX_DISABLE_SUBNODES')) { define('ZBX_DISABLE_SUBNODES', 1); } } if(isset($menu_url)){ /* active menu */ $class = "active"; update_profile('web.menu.'.$label.'.last', $menu_url); if(isset($deny)){ $denyed_page_requested = true; continue; } foreach($sub['pages'] as $sub_pages){ if(!isset($sub_pages['label'])) continue; $label = new CLink($sub_pages['label'], $sub_pages['url'],'highlight'); if(isset($sub_pages['active'])) $label = new CSpan($label, 'active'); array_push($sub_menu_row, $label, new CSpan(SPACE.SPACE.'|'.SPACE.SPACE, 'divider') ); } } else{ if(isset($deny)) continue; $class = "horizontal_menu_n"; $menu_url = get_profile('web.menu.'.$label.'.last',false); if(!$menu_url) $menu_url = $sub['pages'][$sub['default_page_id']]["url"]; } array_push($main_menu_row, new CCol(new CLink($sub['label'], $menu_url, "highlight"),$class)); unset($menu_url, $class); } if((!isset($page_exist) && $page['type']!=PAGE_TYPE_XML)){ $denyed_page_requested = true; } zbx_flush_post_cookies(isset($denyed_page_requested)); if($page["type"] == PAGE_TYPE_HTML) { ?>