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('acknow.php','tr_comments.php','chart4.php','scripts_exec.php') ), array( 'url'=>'events.php', 'label'=>S_EVENTS, 'sub_pages'=>array('tr_events.php') ), array( 'url'=>'charts.php', 'label'=>S_GRAPHS, 'sub_pages'=>array('chart2.php','chart3.php','chart6.php','chart7.php') ), array( 'url'=>'screens.php', 'label'=>S_SCREENS ), array( 'url'=>'maps.php', 'label'=>S_MAPS, 'sub_pages'=>array('map.php') ), 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','report7.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'=>'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'=>'sysmaps.php' ,'label'=>S_MAPS, 'sub_pages'=>array('sysmap.php','popup_link_tr.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'=>'authentication.php' ,'label'=>S_AUTHENTICATION), 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'=>'queue.php' ,'label'=>S_QUEUE ), 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'],PERM_RES_IDS_ARRAY))){ $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'],PERM_RES_IDS_ARRAY))){ 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, PROFILE_TYPE_STR); 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) { ?>