diff options
author | artem <artem@97f52cf1-0a1b-0410-bd0e-c28be96e8082> | 2008-04-07 13:14:00 +0000 |
---|---|---|
committer | artem <artem@97f52cf1-0a1b-0410-bd0e-c28be96e8082> | 2008-04-07 13:14:00 +0000 |
commit | d1f0507236793e1d4b28eb213b17432cef9bdd99 (patch) | |
tree | d6c07129b66ba6acb0cac47fab9a6bf5452e7b86 /frontends/php/report3.php | |
parent | 81c4d84a47e5d82758d45a83cd0b4b9cb35c7ea8 (diff) | |
download | zabbix-d1f0507236793e1d4b28eb213b17432cef9bdd99.tar.gz zabbix-d1f0507236793e1d4b28eb213b17432cef9bdd99.tar.xz zabbix-d1f0507236793e1d4b28eb213b17432cef9bdd99.zip |
- [DEV-137] improvements in permissions checks (Artem)
- [DEV-137] fixed issue "viewing items, hosts without group in latest data" (Artem)
git-svn-id: svn://svn.zabbix.com/trunk@5595 97f52cf1-0a1b-0410-bd0e-c28be96e8082
Diffstat (limited to 'frontends/php/report3.php')
-rw-r--r-- | frontends/php/report3.php | 115 |
1 files changed, 55 insertions, 60 deletions
diff --git a/frontends/php/report3.php b/frontends/php/report3.php index 660dfeab..bb071dd7 100644 --- a/frontends/php/report3.php +++ b/frontends/php/report3.php @@ -45,23 +45,19 @@ include_once "include/page_header.php"; define("YEAR_LEFT_SHIFT", 5); ?> <?php - if(! (DBfetch(DBselect('select serviceid from services where serviceid='.$_REQUEST["serviceid"]))) ) - { + if(!DBfetch(DBselect('select serviceid from services where serviceid='.$_REQUEST["serviceid"]))){ fatal_error(S_NO_IT_SERVICE_DEFINED); } - - $denyed_hosts = get_accessible_hosts_by_user($USER_DETAILS,PERM_READ_ONLY,PERM_MODE_LT); - if( !($service = DBfetch(DBselect('SELECT s.* '. - ' FROM services s '. - ' LEFT JOIN triggers t on s.triggerid=t.triggerid '. - ' LEFT JOIN functions f on t.triggerid=f.triggerid '. - ' LEFT JOIN items i on f.itemid=i.itemid '. - ' WHERE (i.hostid is NULL or i.hostid not in ('.$denyed_hosts.')) '. - ' AND '.DBin_node('s.serviceid'). - ' AND s.serviceid='.$_REQUEST['serviceid'] - )))) - { + $available_triggers = get_accessible_triggers(PERM_READ_ONLY, null, get_current_nodeid()); + + $sql = 'SELECT s.* '. + ' FROM services s '. + ' WHERE s.serviceid='.$_REQUEST['serviceid']. + ' AND (s.triggerid IS NULL OR s.triggerid IN ('.$available_triggers.')) '. + ' AND DBin_node('s.serviceid')'; + + if(!$service = DBfetch(DBselect($sql))){ access_deny(); } ?> @@ -78,10 +74,11 @@ include_once "include/page_header.php"; $form->AddItem(array(SPACE.S_PERIOD.SPACE, $cmbPeriod)); $cmbYear = new CComboBox("year", $year, "submit();"); - for($y = (date("Y") - YEAR_LEFT_SHIFT); $y <= date("Y"); $y++) - { + + for($y = (date("Y") - YEAR_LEFT_SHIFT); $y <= date("Y"); $y++){ $cmbYear->AddItem($y, $y); } + $form->AddItem(array(SPACE.S_YEAR.SPACE, $cmbYear)); show_table_header(array( @@ -97,50 +94,48 @@ include_once "include/page_header.php"; $header = array(S_OK,S_PROBLEMS,S_DOWNTIME,S_PERCENTAGE,S_SLA); - switch($period) - { - case "yearly": - $from = (date("Y") - YEAR_LEFT_SHIFT); - $to = date("Y"); - array_unshift($header, new CCol(S_YEAR,"center")); - function get_time($y) { return mktime(0,0,0,1,1,$y); } - function format_time($t){ return date("Y", $t); } - function format_time2($t){ return null; }; - break; - case "monthly": - $from = 1; - $to = 12; - array_unshift($header, new CCol(S_MONTH,"center")); - function get_time($m) { global $year; return mktime(0,0,0,$m,1,$year); } - function format_time($t){ return date("M Y",$t); } - function format_time2($t){ return null; }; - break; - case "dayly": - $from = 1; - $to = 365; - array_unshift($header, new CCol(S_DAY,"center")); - function get_time($d) { global $year; return mktime(0,0,0,1,$d,$year); } - function format_time($t){ return date("d M Y",$t); } - function format_time2($t){ return null; }; - break; - case "weekly": - default: - $from = 0; - $to = 52; - array_unshift($header,new CCol(S_FROM,"center"),new CCol(S_TILL,"center")); - function get_time($w) { - global $year; - - $time = mktime(0,0,0,1, 1, $year); - $wd = date("w", $time); - $wd = $wd == 0 ? 6 : $wd - 1; - - return ($time + ($w*7 - $wd)*24*3600); - } - function format_time($t){ return date("d M Y H:i",$t); } - function format_time2($t){ return format_time($t); }; - break; - + switch($period){ + case "yearly": + $from = (date("Y") - YEAR_LEFT_SHIFT); + $to = date("Y"); + array_unshift($header, new CCol(S_YEAR,"center")); + function get_time($y) { return mktime(0,0,0,1,1,$y); } + function format_time($t){ return date("Y", $t); } + function format_time2($t){ return null; }; + break; + case "monthly": + $from = 1; + $to = 12; + array_unshift($header, new CCol(S_MONTH,"center")); + function get_time($m) { global $year; return mktime(0,0,0,$m,1,$year); } + function format_time($t){ return date("M Y",$t); } + function format_time2($t){ return null; }; + break; + case "dayly": + $from = 1; + $to = 365; + array_unshift($header, new CCol(S_DAY,"center")); + function get_time($d) { global $year; return mktime(0,0,0,1,$d,$year); } + function format_time($t){ return date("d M Y",$t); } + function format_time2($t){ return null; }; + break; + case "weekly": + default: + $from = 0; + $to = 52; + array_unshift($header,new CCol(S_FROM,"center"),new CCol(S_TILL,"center")); + function get_time($w) { + global $year; + + $time = mktime(0,0,0,1, 1, $year); + $wd = date("w", $time); + $wd = $wd == 0 ? 6 : $wd - 1; + + return ($time + ($w*7 - $wd)*24*3600); + } + function format_time($t){ return date("d M Y H:i",$t); } + function format_time2($t){ return format_time($t); }; + break; } $table->SetHeader($header); |