summaryrefslogtreecommitdiffstats
path: root/frontends/php
diff options
context:
space:
mode:
authorartem <artem@97f52cf1-0a1b-0410-bd0e-c28be96e8082>2007-05-31 07:41:24 +0000
committerartem <artem@97f52cf1-0a1b-0410-bd0e-c28be96e8082>2007-05-31 07:41:24 +0000
commitc28d86f5ee7cddfde35cc61daa9a726e2e68509b (patch)
treeb68d2a0c6f5f3b7071c8062139573fd3d24611a6 /frontends/php
parent4ce0c92b675da5d30bab11464ae51b7bd9b51a1a (diff)
- fixed permissions in IT Services (Artem/Eugene)
- fixed adding 'root' to services git-svn-id: svn://svn.zabbix.com/trunk@4214 97f52cf1-0a1b-0410-bd0e-c28be96e8082
Diffstat (limited to 'frontends/php')
-rw-r--r--frontends/php/include/hosts.inc.php2
-rw-r--r--frontends/php/include/services.inc.php22
-rw-r--r--frontends/php/popup.php26
-rw-r--r--frontends/php/services.php37
-rw-r--r--frontends/php/services_form.php4
-rw-r--r--frontends/php/srv_status.php16
6 files changed, 72 insertions, 35 deletions
diff --git a/frontends/php/include/hosts.inc.php b/frontends/php/include/hosts.inc.php
index f7d7dd33..5ccae673 100644
--- a/frontends/php/include/hosts.inc.php
+++ b/frontends/php/include/hosts.inc.php
@@ -482,6 +482,8 @@ require_once "include/items.inc.php";
if(in_array("monitored_hosts",$options))
$with_host_status = " and h.status=".HOST_STATUS_MONITORED;
+ elseif(in_array('real_hosts',$options))
+ $with_host_status = " and h.status<>".HOST_STATUS_TEMPLATE;
else
$with_host_status = "";
diff --git a/frontends/php/include/services.inc.php b/frontends/php/include/services.inc.php
index 1cce729c..b54eb79b 100644
--- a/frontends/php/include/services.inc.php
+++ b/frontends/php/include/services.inc.php
@@ -588,7 +588,9 @@ $dt = 0;
if(!isset($services[$nodeid['id']])){
continue;
}
- createServiceTree($services,$temp,$nodeid['id'],$services[$nodeid['id']]['serviceupid'],$rows['serviceid'],$nodeid['soft'], $nodeid['linkid']);
+ if(isset($services[$nodeid['id']]['serviceupid'])){
+ createServiceTree($services,$temp,$nodeid['id'],$services[$nodeid['id']]['serviceupid'],$rows['serviceid'],$nodeid['soft'], $nodeid['linkid']);
+ }
}
}
} else {
@@ -616,7 +618,8 @@ $dt = 0;
if(!isset($services[$nodeid['id']])){
continue;
}
- createShowServiceTree($services,$temp,$nodeid['id'],$services[$nodeid['id']]['serviceupid'],$rows['serviceid'],$nodeid['soft'], $nodeid['linkid']);
+ if(isset($services[$nodeid['id']]['serviceupid'])){
+ createShowServiceTree($services,$temp,$nodeid['id'],$services[$nodeid['id']]['serviceupid'],$rows['serviceid'],$nodeid['soft'], $nodeid['linkid']); }
}
}
} else {
@@ -628,7 +631,20 @@ $dt = 0;
}
function closeform(){
-
zbx_add_post_js('closeform();');
}
+
+ function del_empty_nodes($services){
+ do{
+ unset($retry);
+ foreach($services as $id => $data){
+ if(isset($data['serviceupid']) && !isset($services[$data['serviceupid']])){
+ unset($services[$id]);
+ $retry = true;
+ //break;
+ }
+ }
+ } while(isset($retry));
+ return $services;
+ }
?>
diff --git a/frontends/php/popup.php b/frontends/php/popup.php
index 29b83041..200d1dbb 100644
--- a/frontends/php/popup.php
+++ b/frontends/php/popup.php
@@ -117,6 +117,7 @@ include_once "include/page_header.php";
"existed_templates"=> array(T_ZBX_STR, O_OPT, null, NOT_EMPTY, null),
"only_hostid"=> array(T_ZBX_INT, O_OPT, null, DB_ID, null),
"monitored_hosts"=> array(T_ZBX_INT, O_OPT, null, IN('0,1'), null),
+ 'real_hosts'=> array(T_ZBX_INT, O_OPT, null, IN('0,1'), null),
'itemtype'=> array(T_ZBX_INT, O_OPT, null, null, null),
"select"=> array(T_ZBX_STR, O_OPT, P_SYS|P_ACT, null, null)
@@ -136,6 +137,7 @@ include_once "include/page_header.php";
$srcfld2 = get_request("srcfld2", null); // second source table field [can be different from fields of source table]
$monitored_hosts = get_request("monitored_hosts", 0);
+ $real_hosts = get_request("real_hosts", 0);
$only_hostid = get_request("only_hostid", null);
?>
<?php
@@ -158,6 +160,9 @@ include_once "include/page_header.php";
if($monitored_hosts)
$frmTitle->AddVar('monitored_hosts', 1);
+ if($real_hosts)
+ $frmTitle->AddVar('real_hosts', 1);
+
$frmTitle->AddVar("dstfrm", $dstfrm);
$frmTitle->AddVar("dstfld1", $dstfld1);
$frmTitle->AddVar("dstfld2", $dstfld2);
@@ -177,6 +182,9 @@ include_once "include/page_header.php";
if($monitored_hosts)
array_push($validation_param, "monitored_hosts");
+ if($real_hosts)
+ array_push($validation_param, "real_hosts");
+
if(in_array($srctbl,array("triggers","logitems","items")))
{
array_push($validation_param, "always_select_first_host");
@@ -228,6 +236,7 @@ include_once "include/page_header.php";
" and g.groupid=hg.groupid and hg.hostid in (".$accessible_hosts.") ".
" and hg.hostid = h.hostid ".
($monitored_hosts ? " and h.status=".HOST_STATUS_MONITORED : "").
+ ($real_hosts ? " and h.status<>".HOST_STATUS_TEMPLATE : "").
" order by name");
while($group = DBfetch($db_groups))
{
@@ -266,7 +275,8 @@ include_once "include/page_header.php";
$sql .= DBid2nodeid("h.hostid")."=".$nodeid.
" and h.hostid in (".$accessible_hosts.")".
- ($monitored_hosts ? " and h.status=".HOST_STATUS_MONITORED : "");
+ ($monitored_hosts ? " and h.status=".HOST_STATUS_MONITORED : "").
+ ($real_hosts ? " and h.status<>".HOST_STATUS_TEMPLATE : "");
$db_hosts = DBselect($sql);
while($host = DBfetch($db_hosts))
@@ -308,6 +318,7 @@ include_once "include/page_header.php";
$sql .= DBid2nodeid("h.hostid")."=".$nodeid.
" and h.hostid in (".$accessible_hosts.") ".
($monitored_hosts ? " and h.status=".HOST_STATUS_MONITORED : "").
+ ($real_hosts ? " and h.status<>".HOST_STATUS_TEMPLATE : "").
" order by h.host,h.hostid";
@@ -447,6 +458,9 @@ include_once "include/page_header.php";
if($monitored_hosts)
$form->AddVar('monitored_hosts', 1);
+
+ if($real_hosts)
+ $form->AddVar('real_hosts', 1);
$form->AddVar('dstfrm',$dstfrm);
$form->AddVar('dstfld1',$dstfld1);
@@ -578,7 +592,8 @@ include_once "include/page_header.php";
" where f.itemid=i.itemid and h.hostid=i.hostid and t.triggerid=f.triggerid".
" and ".DBid2nodeid("t.triggerid")."=".$nodeid.
" and h.hostid not in (".$denyed_hosts.")".
- ($monitored_hosts ? " and h.status=".HOST_STATUS_MONITORED : "");
+ ($monitored_hosts ? " and h.status=".HOST_STATUS_MONITORED : "").
+ ($real_hosts ? " and h.status<>".HOST_STATUS_TEMPLATE : "");
if(isset($hostid))
$sql .= " and h.hostid=$hostid";
@@ -677,6 +692,7 @@ function add_item_variable(s_formname,x_value)
(isset($hostid) ? " and ".$hostid."=i.hostid " : "").
" and i.hostid in (".$accessible_hosts.")".
($monitored_hosts ? " and h.status=".HOST_STATUS_MONITORED : "").
+ ($real_hosts ? " and h.status<>".HOST_STATUS_TEMPLATE : "").
" order by h.host,i.description, i.key_, i.itemid");
while($db_item = DBfetch($db_items))
@@ -717,7 +733,8 @@ function add_item_variable(s_formname,x_value)
$sql = "select distinct h.host,i.* from hosts h,items i ".
" where h.hostid=i.hostid and ".DBid2nodeid("i.itemid")."=".$nodeid.
" and h.hostid not in (".$denyed_hosts.")".
- ($monitored_hosts ? " and h.status=".HOST_STATUS_MONITORED : "");
+ ($monitored_hosts ? " and h.status=".HOST_STATUS_MONITORED : '').
+ ($real_hosts ? " and h.status<>".HOST_STATUS_TEMPLATE : '');
if(isset($hostid))
$sql .= " and h.hostid=$hostid";
@@ -758,7 +775,8 @@ function add_item_variable(s_formname,x_value)
$sql = "select distinct h.host,a.* from hosts h,applications a ".
" where h.hostid=a.hostid and ".DBid2nodeid("a.applicationid")."=".$nodeid.
" and h.hostid not in (".$denyed_hosts.")".
- ($monitored_hosts ? " and h.status=".HOST_STATUS_MONITORED : "");
+ ($monitored_hosts ? " and h.status=".HOST_STATUS_MONITORED : "").
+ ($real_hosts ? " and h.status<>".HOST_STATUS_TEMPLATE : "");
if(isset($hostid))
$sql .= " and h.hostid=$hostid";
diff --git a/frontends/php/services.php b/frontends/php/services.php
index 4a4ea993..9c161a77 100644
--- a/frontends/php/services.php
+++ b/frontends/php/services.php
@@ -36,30 +36,21 @@ include_once "include/page_header.php";
check_fields($fields);
-//----------------------------------------------------------------------
-
- $denyed_hosts = get_accessible_hosts_by_user($USER_DETAILS,PERM_READ_WRITE,PERM_MODE_LT);
-
- if(isset($_REQUEST['serviceid']) && $_REQUEST['serviceid'] > 0){
- $query = "SELECT s.*,sl.linkid 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 ".DBid2nodeid("s.serviceid")."=".$ZBX_CURNODEID.
- " and s.serviceid=".$_REQUEST["serviceid"];
- if( !($service = DBFetch(DBSelect($query))) ){
- access_deny();
- }
- }
//--------------------------------------------------------------------------
+$denyed_hosts = get_accessible_hosts_by_user($USER_DETAILS,PERM_READ_WRITE,PERM_MODE_LT);
+
$query = 'SELECT distinct s.serviceid, sl.servicedownid, sl_p.serviceupid as serviceupid,
- s.name caption, s.algorithm, t.triggerid, s.sortorder, sl.linkid
- FROM services s
- LEFT JOIN triggers t ON s.triggerid = t.triggerid
- LEFT JOIN services_links sl ON s.serviceid = sl.serviceupid and NOT(sl.soft=0)
- LEFT JOIN services_links sl_p ON s.serviceid = sl_p.servicedownid and sl_p.soft=0
- WHERE '.DBid2nodeid("s.serviceid").'='.$ZBX_CURNODEID.'
- ORDER BY s.sortorder, sl.serviceupid, s.serviceid';
+ s.name caption, s.algorithm, t.triggerid, s.sortorder, sl.linkid'.
+ ' FROM services s '.
+ ' LEFT JOIN triggers t ON s.triggerid = t.triggerid '.
+ ' LEFT JOIN services_links sl ON s.serviceid = sl.serviceupid and NOT(sl.soft=0) '.
+ ' LEFT JOIN services_links sl_p ON s.serviceid = sl_p.servicedownid and sl_p.soft=0 '.
+ ' 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 '.DBid2nodeid("s.serviceid").'='.$ZBX_CURNODEID.
+ ' ORDER BY s.sortorder, sl.serviceupid, s.serviceid';
$result=DBSelect($query);
@@ -100,6 +91,10 @@ while($row = DBFetch($result)){
$treeServ=array();
createServiceTree($services,$treeServ); //return into $treeServ parametr
+//permission issue
+$treeServ = del_empty_nodes($treeServ);
+
+
echo '<script src="js/services.js" type="text/javascript"></script>';
$p = new Ctag('p','yes');
diff --git a/frontends/php/services_form.php b/frontends/php/services_form.php
index aa9b8aa7..1d2c0438 100644
--- a/frontends/php/services_form.php
+++ b/frontends/php/services_form.php
@@ -185,7 +185,7 @@ if(isset($_REQUEST['pservices'])){
$description->SetAction('javascript:
window.opener.document.forms[0].elements[\'parent_name\'].value = '.zbx_jsvalue(S_ROOT_SMALL).';
window.opener.document.forms[0].elements[\'parentname\'].value = '.zbx_jsvalue(S_ROOT_SMALL).';
- window.opener.document.forms[0].elements[\'parentid\'].value = '.zbx_jsvalue(S_ROOT_SMALL).';
+ window.opener.document.forms[0].elements[\'parentid\'].value = '.zbx_jsvalue(0).';
self.close(); return false;');
$table->AddRow(array(array($prefix,$description),S_NONE,$trigger));
@@ -661,7 +661,7 @@ if(isset($_REQUEST['sform'])){
new CCol(S_TRIGGER,'form_row_l'),
new CCol(array(
new CTextBox("trigger",$trigger,32,'yes'),
- new CButton("btn1",S_SELECT,"return PopUp('popup.php?"."dstfrm=".$frmService->GetName()."&dstfld1=triggerid&dstfld2=trigger"."&srctbl=triggers&srcfld1=triggerid&&srcfld2=description');",'T')
+ new CButton("btn1",S_SELECT,"return PopUp('popup.php?"."dstfrm=".$frmService->GetName()."&dstfld1=triggerid&dstfld2=trigger"."&srctbl=triggers&srcfld1=triggerid&srcfld2=description&real_hosts=1');",'T')
),'form_row_r')
));
$row->AddOption('id','trigger_name');
diff --git a/frontends/php/srv_status.php b/frontends/php/srv_status.php
index 11030d88..0baf5e3f 100644
--- a/frontends/php/srv_status.php
+++ b/frontends/php/srv_status.php
@@ -66,12 +66,15 @@ include_once "include/page_header.php";
} else {
$query = 'SELECT DISTINCT s.serviceid, sl.servicedownid, sl_p.serviceupid as serviceupid, s.triggerid, '.
- ' s.name as caption, s.algorithm, t.description, s.sortorder, sl.linkid, s.showsla, s.goodsla, s.status '.
- ' FROM services s '.
- ' LEFT JOIN triggers t ON s.triggerid = t.triggerid '.
- ' LEFT JOIN services_links sl ON s.serviceid = sl.serviceupid and NOT(sl.soft=0) '.
- ' LEFT JOIN services_links sl_p ON s.serviceid = sl_p.servicedownid and sl_p.soft=0 '.
+ ' s.name as caption, s.algorithm, t.description, s.sortorder, sl.linkid, s.showsla, s.goodsla, s.status '.
+ ' FROM services s '.
+ ' LEFT JOIN triggers t ON s.triggerid = t.triggerid '.
+ ' LEFT JOIN services_links sl ON s.serviceid = sl.serviceupid and NOT(sl.soft=0) '.
+ ' LEFT JOIN services_links sl_p ON s.serviceid = sl_p.servicedownid and sl_p.soft=0 '.
+ ' LEFT JOIN functions f ON t.triggerid=f.triggerid '.
+ ' LEFT JOIN items i ON f.itemid=i.itemid '.
' WHERE '.DBid2nodeid("s.serviceid").'='.$ZBX_CURNODEID.
+ ' AND (i.hostid is null or i.hostid not in ('.$denyed_hosts.')) '.
' ORDER BY s.sortorder, sl.serviceupid, s.serviceid';
$result=DBSelect($query);
@@ -163,6 +166,9 @@ include_once "include/page_header.php";
$treeServ = array();
createShowServiceTree($services,$treeServ); //return into $treeServ parametr
+ //permission issue
+ $treeServ = del_empty_nodes($treeServ);
+
echo '<script src="js/services.js" type="text/javascript"></script>';
$tree = new CTree($treeServ,array('caption' => '<b>'.S_SERVICE.'</b>',