diff options
| author | osmiy <osmiy@97f52cf1-0a1b-0410-bd0e-c28be96e8082> | 2007-03-21 13:17:24 +0000 |
|---|---|---|
| committer | osmiy <osmiy@97f52cf1-0a1b-0410-bd0e-c28be96e8082> | 2007-03-21 13:17:24 +0000 |
| commit | 8ef6917ea5eaae24bc2a15a06a99b3b1f24d1f35 (patch) | |
| tree | 86b9957c4a9a6c4da386064fb497a69cad9fad03 /frontends/php/include/page_header.php | |
| parent | 2547403188f63f0042a15aff4d17e04e2e80d715 (diff) | |
| download | zabbix-8ef6917ea5eaae24bc2a15a06a99b3b1f24d1f35.tar.gz zabbix-8ef6917ea5eaae24bc2a15a06a99b3b1f24d1f35.tar.xz zabbix-8ef6917ea5eaae24bc2a15a06a99b3b1f24d1f35.zip | |
- added quick help for overview (Eugene)
- developed Dicovery system (Alexei/Eugene)
git-svn-id: svn://svn.zabbix.com/trunk@3904 97f52cf1-0a1b-0410-bd0e-c28be96e8082
Diffstat (limited to 'frontends/php/include/page_header.php')
| -rw-r--r-- | frontends/php/include/page_header.php | 73 |
1 files changed, 48 insertions, 25 deletions
diff --git a/frontends/php/include/page_header.php b/frontends/php/include/page_header.php index 7b6d8d93..3d5d568b 100644 --- a/frontends/php/include/page_header.php +++ b/frontends/php/include/page_header.php @@ -110,6 +110,7 @@ COpt::profiling_start("page"); $ZBX_MENU = array( "view"=>array( "label" => S_MONITORING, + "node_perm" => PERM_READ_LIST, "default_page_id" => 0, "pages"=>array( array("url"=>"overview.php" ,"label"=>S_OVERVIEW ), @@ -133,6 +134,7 @@ COpt::profiling_start("page"); "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 , "sub_pages"=>array("report3.php","chart_sla.php","chart5.php") ), @@ -142,6 +144,7 @@ COpt::profiling_start("page"); ), "cm"=>array( "label" => S_INVENTORY, + "node_perm" => PERM_READ_LIST, "default_page_id" => 0, "pages"=>array( array("url"=>"hostprofiles.php" ,"label"=>S_HOSTS ) @@ -149,6 +152,7 @@ COpt::profiling_start("page"); ), "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 ), @@ -158,6 +162,8 @@ COpt::profiling_start("page"); ), "config"=>array( "label" => S_CONFIGURATION, + "user_type" => USER_TYPE_ZABBIX_ADMIN, + "node_perm" => PERM_READ_LIST, "default_page_id" => 0, "pages"=>array( array("url"=>"config.php" ,"label"=>S_GENERAL , @@ -189,6 +195,8 @@ COpt::profiling_start("page"); ), "admin"=>array( "label" => S_ADMINISTRATION, + "user_type" => USER_TYPE_SUPER_ADMIN, + "node_perm" => PERM_READ_WRITE, "default_page_id" => 1, "pages"=>array( ZBX_DISTRIBUTED ? array("url"=>"nodes.php" ,"label"=>S_NODES) : null , @@ -219,42 +227,59 @@ COpt::profiling_start("page"); foreach($ZBX_MENU as $label=>$sub) { -// Check permissions +// Check permissions for main menu unset($deny); if(!defined('ZBX_PAGE_NO_AUTHERIZATION')) { - if($label!='login' && !isset($USER_DETAILS['type'])) + if(isset($sub['user_type'])) { - $deny = true; + if($USER_DETAILS['type'] < $sub['user_type']) + $deny = true; } - elseif($label=='admin' && (!in_array($USER_DETAILS['type'], array(USER_TYPE_SUPER_ADMIN)) || - !in_array($ZBX_CURNODEID, get_accessible_nodes_by_user( - $USER_DETAILS,PERM_READ_WRITE,null, - PERM_RES_IDS_ARRAY,$ZBX_CURNODEID)))) - { - $deny = true; - } - elseif($label=='config' && ( - !in_array($USER_DETAILS['type'], array(USER_TYPE_SUPER_ADMIN, USER_TYPE_ZABBIX_ADMIN)) || - !in_array($ZBX_CURNODEID, get_accessible_nodes_by_user( - $USER_DETAILS,PERM_READ_LIST,null, - PERM_RES_IDS_ARRAY,$ZBX_CURNODEID)))) + + if(isset($sub['node_perm'])) { - $deny = true; - } - elseif($label!='login' && !in_array($ZBX_CURNODEID, get_accessible_nodes_by_user( - $USER_DETAILS,PERM_READ_LIST,null, + if(!in_array($ZBX_CURNODEID,get_accessible_nodes_by_user( + $USER_DETAILS,$sub['node_perm'],null, PERM_RES_IDS_ARRAY,$ZBX_CURNODEID))) + $deny = true; + } + + if($label=='login') { - $deny = true; + unset($deny); } } -// End of check permissions +// 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(!in_array($ZBX_CURNODEID,get_accessible_nodes_by_user( + $USER_DETAILS,$sub_pages['node_perm'],null, + PERM_RES_IDS_ARRAY,$ZBX_CURNODEID))) + { + unset($sub['pages'][$id]); + continue; + } + } + } + + if(isset($page_exist)) continue; if($page['file'] == $sub_pages['url']) { @@ -263,7 +288,7 @@ COpt::profiling_start("page"); $menu_url = $sub_pages['url']; } $page_exist = true; - break; + $sub['pages'][$id]['active'] = true; /* mark as active */ } else if(isset($sub_pages['sub_pages'])) { @@ -274,15 +299,13 @@ COpt::profiling_start("page"); $menu_url = $sub_pages['url']; } $page_exist = true; - break; + $sub['pages'][$id]['active'] = true; /* mark as active */ } } } if(isset($menu_url)) /* active menu */ { - $sub['pages'][$id]['active'] = true; /* mark as active */ - $class = "active"; update_profile('web.menu.'.$label.'.last', $menu_url); |
