summaryrefslogtreecommitdiffstats
path: root/frontends/php/include
diff options
context:
space:
mode:
authorartem <artem@97f52cf1-0a1b-0410-bd0e-c28be96e8082>2008-02-01 13:58:10 +0000
committerartem <artem@97f52cf1-0a1b-0410-bd0e-c28be96e8082>2008-02-01 13:58:10 +0000
commit6615cce7aaf92edabdcc33d9db91ff01c4fdbe0a (patch)
treea9434cd259b71f620727795613d5af3fd798b3e6 /frontends/php/include
parent91da2b8621634e300ce35b00230ec30f9e5aadb5 (diff)
downloadzabbix-6615cce7aaf92edabdcc33d9db91ff01c4fdbe0a.tar.gz
zabbix-6615cce7aaf92edabdcc33d9db91ff01c4fdbe0a.tar.xz
zabbix-6615cce7aaf92edabdcc33d9db91ff01c4fdbe0a.zip
- [HAN-2] merged rev.5301:5304 of 1.4/ (Artem) [improved speed on coping triggers to host]
- [DEV-103] fixes to users group jsmenu (Artem) git-svn-id: svn://svn.zabbix.com/trunk@5305 97f52cf1-0a1b-0410-bd0e-c28be96e8082
Diffstat (limited to 'frontends/php/include')
-rw-r--r--frontends/php/include/perm.inc.php6
-rw-r--r--frontends/php/include/triggers.inc.php102
-rw-r--r--frontends/php/include/users.inc.php10
3 files changed, 74 insertions, 44 deletions
diff --git a/frontends/php/include/perm.inc.php b/frontends/php/include/perm.inc.php
index 10522455..46afb302 100644
--- a/frontends/php/include/perm.inc.php
+++ b/frontends/php/include/perm.inc.php
@@ -399,8 +399,10 @@ COpt::counter_up('perm');
$do_break = true;
- if(is_array($nodeid) && !uint_in_array($node_data['nodeid'],$nodeid)) continue;
- else if(!is_array($nodeid) && (bccomp($node_data['nodeid'] ,$nodeid) != 0)) continue;
+ if(isset($nodeid) && is_array($nodeid)){
+ if(!uint_in_array($node_data['nodeid'],$nodeid)) continue;
+ }
+ else if(isset($nodeid) && (bccomp($node_data['nodeid'] ,$nodeid) != 0)) continue;
}
else
{
diff --git a/frontends/php/include/triggers.inc.php b/frontends/php/include/triggers.inc.php
index d0b8dcf2..e0587c19 100644
--- a/frontends/php/include/triggers.inc.php
+++ b/frontends/php/include/triggers.inc.php
@@ -353,34 +353,18 @@
* retrive selection of triggers by hostid
*
* Author:
- * Eugene Grigorjev (eugene.grigorjev@zabbix.com)
+ * Aly
*
* Comments:
*
*/
- function get_triggers_by_hostid($hostid, $show_mixed = "yes")
- {
- $db_triggers = DBselect("select distinct t.* from triggers t, functions f, items i".
- " where i.hostid=$hostid and f.itemid=i.itemid and f.triggerid=t.triggerid");
-
- if($show_mixed == "yes")
- return $db_triggers;
-
- $triggers = array();
- while($db_trigger = DBfetch($db_triggers))
- {
- $db_hosts = get_hosts_by_triggerid($db_trigger["triggerid"]);
- if(DBfetch($db_hosts))
- {
- array_push($triggers,$db_trigger["triggerid"]);
- }
- }
- $sql = "select distinct * from triggers where triggerid=0";
- foreach($triggers as $triggerid)
- {
- $sql .= " or triggerid=$triggerid";
- }
- return DBselect($sql);
+ function get_triggers_by_hostid($hostid){
+ $db_triggers = DBselect('SELECT DISTINCT t.* '.
+ ' FROM triggers t, functions f, items i '.
+ ' WHERE i.hostid='.$hostid.
+ ' AND f.itemid=i.itemid '.
+ ' AND f.triggerid=t.triggerid');
+ return $db_triggers;
}
function get_triggers_by_templateid($triggerid)
@@ -790,17 +774,28 @@
get_trigger_dependences_by_triggerid($triggerid),
$hostid);
- $host_triggers = get_triggers_by_hostid($hostid, "no");
- while($host_trigger = DBfetch($host_triggers))
- {
- if($host_trigger["templateid"] != 0) continue;
- if(cmp_triggers($triggerid, $host_trigger["triggerid"])) continue;
-
+ $sql='SELECT t2.triggerid, t2.expression '.
+ ' FROM triggers t2, functions f1, functions f2, items i1, items i2 '.
+ ' WHERE f1.triggerid='.$triggerid.
+ ' AND i1.itemid=f1.itemid '.
+ ' AND f2.function=f1.function '.
+ ' AND f2.parameter=f1.parameter '.
+ ' AND i2.itemid=f2.itemid '.
+ ' AND i2.key_=i1.key_ '.
+ ' AND i2.hostid='.$hostid.
+ ' AND t2.triggerid=f2.triggerid '.
+ ' AND t2.templateid=0 ';
+
+ $host_triggers = DBSelect($sql);
+ while($host_trigger = DBfetch($host_triggers)){
+ if(cmp_triggers_exressions($triggerid, $host_trigger["triggerid"])) continue;
// link not linked trigger with same expression
+
return update_trigger(
$host_trigger["triggerid"],
NULL, // expression
$trigger["description"],
+ $trigger["type"],
$trigger["priority"],
NULL, // status
$trigger["comments"],
@@ -809,14 +804,13 @@
$copy_mode ? 0 : $triggerid);
}
- $newtriggerid=get_dbid("triggers","triggerid");
+ $newtriggerid=get_dbid('triggers','triggerid');
- $result = DBexecute("insert into triggers".
- " (triggerid,description,type,priority,status,comments,url,value,expression,templateid)".
- " values ($newtriggerid,".zbx_dbstr($trigger['description']).','.$trigger['type'].','.$trigger['priority'].','.
- $trigger['status'].','.zbx_dbstr($trigger['comments']).','.
- zbx_dbstr($trigger["url"]).",2,'{???:???}',".
- ($copy_mode ? 0 : $triggerid).")");
+ $result = DBexecute('INSERT INTO triggers'.
+ ' (triggerid,description,type,priority,status,comments,url,value,expression,templateid)'.
+ ' VALUES ('.$newtriggerid.','.zbx_dbstr($trigger['description']).','.$trigger['type'].','.$trigger['priority'].','.
+ $trigger["status"].','.zbx_dbstr($trigger["comments"]).','.
+ zbx_dbstr($trigger["url"]).",2,'{???:???}',".($copy_mode ? 0 : $triggerid).')');
if(!$result)
return $result;
@@ -1555,12 +1549,44 @@
}
return TRUE;
}
+
+ /*
+ * Function: cmp_triggers_exressions
+ *
+ * Description:
+ * Warning: function compares ONLY expressions,there is no check on functions and items
+ *
+ * Author:
+ * Aly
+ *
+ * Comments:
+ *
+ */
+ function cmp_triggers_exressions($triggerid1, $triggerid2) // compare EXPRESSION !!!
+ {
+ $trig1 = get_trigger_by_triggerid($triggerid1);
+ $trig2 = get_trigger_by_triggerid($triggerid2);
+
+ $trig_fnc1 = get_functions_by_triggerid($triggerid1);
+ $expr1 = $trig1["expression"];
+ while($fnc1 = DBfetch($trig_fnc1)){
+ $trig_fnc2 = get_functions_by_triggerid($triggerid2);
+ while($fnc2 = DBfetch($trig_fnc2)){
+ $expr1 = str_replace(
+ "{".$fnc1["functionid"]."}",
+ "{".$fnc2["functionid"]."}",
+ $expr1);
+ break;
+ }
+ }
+ return strcmp($expr1,$trig2["expression"]);
+ }
/*
* Function: cmp_triggers
*
* Description:
- * compate triggers by expression
+ * compare triggers by expression
*
* Author:
* Eugene Grigorjev (eugene.grigorjev@zabbix.com)
diff --git a/frontends/php/include/users.inc.php b/frontends/php/include/users.inc.php
index 4c2e8ae1..4e83a47d 100644
--- a/frontends/php/include/users.inc.php
+++ b/frontends/php/include/users.inc.php
@@ -412,11 +412,11 @@
{
while($tmp = DBFetch($res)) $grp_list.= "'".$tmp['usrgrpid']."'".',';
}
- $grp_list=rtrim($grp_list,',').')';
+ $grp_list.="'0')";
$res = DBselect('SELECT DISTINCT g.usrgrpid, g.name, g.gui_access, g.users_status'.
' FROM usrgrp g'.
- ' WHERE g.usrgrpid NOT IN'.$grp_list.
+ ' WHERE g.usrgrpid NOT IN '.$grp_list.
' AND '.DBin_node('g.usrgrpid', get_current_nodeid(false)).
' ORDER BY g.name');
@@ -481,7 +481,8 @@
{
while($tmp = DBFetch($res)) $grp_list.= "'".$tmp['usrgrpid']."'".',';
}
- $grp_list=rtrim($grp_list,',').')';
+ $grp_list.="'0')";
+// $grp_list=rtrim($grp_list,',').')';
$res = DBselect('SELECT DISTINCT g.usrgrpid, g.name'.
' FROM usrgrp g'.
@@ -532,7 +533,8 @@
{
while($tmp = DBFetch($res)) $grp_list.= "'".$tmp['usrgrpid']."'".',';
}
- $grp_list=rtrim($grp_list,',').')';
+ $grp_list.="'0')";
+// $grp_list=rtrim($grp_list,',').')';
$res = DBselect('SELECT DISTINCT g.usrgrpid, g.name'.
' FROM usrgrp g'.