diff options
| author | artem <artem@97f52cf1-0a1b-0410-bd0e-c28be96e8082> | 2008-05-09 08:16:43 +0000 |
|---|---|---|
| committer | artem <artem@97f52cf1-0a1b-0410-bd0e-c28be96e8082> | 2008-05-09 08:16:43 +0000 |
| commit | 5422393afccc526b8289f2999fc44b29441b419f (patch) | |
| tree | 7a09abf463b90e9146618172882d42693983c8bd /frontends/php/include/perm.inc.php | |
| parent | 161b61527272e53b75ff14697684f75c7872bdb6 (diff) | |
| download | zabbix-5422393afccc526b8289f2999fc44b29441b419f.tar.gz zabbix-5422393afccc526b8289f2999fc44b29441b419f.tar.xz zabbix-5422393afccc526b8289f2999fc44b29441b419f.zip | |
- [DEV-137] fixed permission bug (Artem)
git-svn-id: svn://svn.zabbix.com/trunk@5689 97f52cf1-0a1b-0410-bd0e-c28be96e8082
Diffstat (limited to 'frontends/php/include/perm.inc.php')
| -rw-r--r-- | frontends/php/include/perm.inc.php | 21 |
1 files changed, 11 insertions, 10 deletions
diff --git a/frontends/php/include/perm.inc.php b/frontends/php/include/perm.inc.php index e4301a6b..7e70630b 100644 --- a/frontends/php/include/perm.inc.php +++ b/frontends/php/include/perm.inc.php @@ -270,25 +270,26 @@ COpt::counter_up('perm'); $processed = array(); while($host_data = DBfetch($db_hosts)){ - if(empty($host_data['nodeid'])) $host_data['nodeid'] = id2nodeid($host_data['hostid']); + if(zbx_empty($host_data['nodeid'])) $host_data['nodeid'] = id2nodeid($host_data['hostid']); /* if no rights defined used node rights */ - if( (empty($host_data['permission']) || empty($host_data['userid'])) ){ - if( isset($processed[$host_data['hostid']]) ) - continue; + + if( zbx_empty($host_data['permission']) || zbx_empty($host_data['userid'])){ + if(isset($processed[$host_data['hostid']]) ) continue; if(!isset($nodes)){ $nodes = get_accessible_nodes_by_user($user_data, PERM_DENY, PERM_MODE_GE, PERM_RES_DATA_ARRAY); } - if( !isset($nodes[$host_data['nodeid']]) || $user_type==USER_TYPE_ZABBIX_USER ) + + if(!isset($nodes[$host_data['nodeid']]) || $user_type==USER_TYPE_ZABBIX_USER ) $host_data['permission'] = PERM_DENY; else $host_data['permission'] = $nodes[$host_data['nodeid']]['permission']; } $processed[$host_data['hostid']] = true; + if($host_data['permission'] < $perm) continue; -// if(eval('return ('.$host_data["permission"].' '.perm_mode2comparator($perm_mode).' '.$perm.')? 0 : 1;')) continue; $result[$host_data['hostid']] = eval('return '.$resdata.';'); } @@ -301,7 +302,7 @@ COpt::counter_up('perm'); else $result = implode(',',$result); } - + $available_hosts[$userid][$perm][$perm_res][$nodeid_str] = $result; return $result; } @@ -349,10 +350,10 @@ COpt::counter_up('perm'); $processed = array(); while($group_data = DBfetch($db_groups)){ - if(empty($group_data['nodeid'])) $group_data['nodeid'] = id2nodeid($group_data['groupid']); + if(zbx_empty($group_data['nodeid'])) $group_data['nodeid'] = id2nodeid($group_data['groupid']); /* deny if no rights defined */ - if( empty($group_data['permission']) || empty($group_data['userid']) ){ + if( zbx_empty($group_data['permission']) || zbx_empty($group_data['userid']) ){ if(isset($processed[$group_data['groupid']])) continue; if(!isset($nodes)){ @@ -449,7 +450,7 @@ COpt::counter_up('perm'); $processed_nodeids[$node_data["nodeid"]] = $node_data["nodeid"]; /* deny if no rights defined (for local node read/write)*/ - if(empty($node_data['permission']) || empty($node_data['userid'])){ + if(zbx_empty($node_data['permission']) || zbx_empty($node_data['userid'])){ if($user_type == USER_TYPE_SUPER_ADMIN) $node_data['permission'] = PERM_READ_WRITE; else |
