diff --git include/classes/api/services/CAction.php include/classes/api/services/CAction.php index d810ba4a9c9..3677f54de3d 100644 --- include/classes/api/services/CAction.php +++ include/classes/api/services/CAction.php @@ -165,7 +165,7 @@ class CAction extends CApiService { ' WHERE a.actionid=c.actionid'. ' AND c.conditiontype IN ('.ZBX_CONDITION_TYPE_HOST.','.ZBX_CONDITION_TYPE_TEMPLATE.')'. ' AND c.value!='.zbx_dbstr('0'). - ' AND p.permission IS NULL'. + ' AND p.hgsetid IS NULL'. ')'; // Check permissions of triggers used in filter conditions. @@ -180,7 +180,7 @@ class CAction extends CApiService { ' WHERE a.actionid=c.actionid'. ' AND c.conditiontype='.ZBX_CONDITION_TYPE_TRIGGER. ' AND c.value!='.zbx_dbstr('0'). - ' AND p.permission IS NULL'. + ' AND p.hgsetid IS NULL'. ')'; // Check permissions of user groups mentioned for "send message" operations. @@ -243,7 +243,7 @@ class CAction extends CApiService { ' LEFT JOIN permission p ON hh.hgsetid=p.hgsetid'. ' AND p.ugsetid='.self::$userData['ugsetid']. ' WHERE a.actionid=o.actionid'. - ' AND p.permission IS NULL'. + ' AND p.hgsetid IS NULL'. ')'; // Check permissions of host groups used in discovery and autoregistration operations. @@ -268,7 +268,7 @@ class CAction extends CApiService { ' LEFT JOIN permission p ON hh.hgsetid=p.hgsetid'. ' AND p.ugsetid='.self::$userData['ugsetid']. ' WHERE a.actionid=o.actionid'. - ' AND p.permission IS NULL'. + ' AND p.hgsetid IS NULL'. ')'; } diff --git include/classes/api/services/CAlert.php include/classes/api/services/CAlert.php index c8d831705c4..4c1a2496a56 100644 --- include/classes/api/services/CAlert.php +++ include/classes/api/services/CAlert.php @@ -215,9 +215,10 @@ class CAlert extends CApiService { ' JOIN items i1 ON f1.itemid=i1.itemid'. ' JOIN host_hgset hh1 ON i1.hostid=hh1.hostid'. ' LEFT JOIN permission p1 ON hh1.hgsetid=p1.hgsetid'. - ' AND p1.ugsetid=p.ugsetid'. - ' WHERE e.objectid=f1.triggerid'. - ' AND p1.permission IS NULL'. + ' AND p1.ugsetid='.self::$userData['ugsetid']. + ' WHERE f.triggerid=f1.triggerid'. + ' AND i.itemid!=f1.itemid'. + ' AND p1.hgsetid IS NULL'. ')'; } elseif (in_array($options['eventobject'], [EVENT_OBJECT_ITEM, EVENT_OBJECT_LLDRULE])) { diff --git include/classes/api/services/CEvent.php include/classes/api/services/CEvent.php index 1173b66c966..12111bcb0fd 100644 --- include/classes/api/services/CEvent.php +++ include/classes/api/services/CEvent.php @@ -243,9 +243,10 @@ class CEvent extends CApiService { ' JOIN items i1 ON f1.itemid=i1.itemid'. ' JOIN host_hgset hh1 ON i1.hostid=hh1.hostid'. ' LEFT JOIN permission p1 ON p1.hgsetid=hh1.hgsetid'. - ' AND p1.ugsetid=p.ugsetid'. - ' WHERE e.objectid=f1.triggerid'. - ' AND p1.permission IS NULL'. + ' AND p1.ugsetid='.self::$userData['ugsetid']. + ' WHERE f.triggerid=f1.triggerid'. + ' AND i.itemid!=f1.itemid'. + ' AND p1.hgsetid IS NULL'. ')'; if ($options['source'] == EVENT_SOURCE_TRIGGERS) { diff --git include/classes/api/services/CGraph.php include/classes/api/services/CGraph.php index 65f92e054c3..32e46c0c97b 100644 --- include/classes/api/services/CGraph.php +++ include/classes/api/services/CGraph.php @@ -124,7 +124,7 @@ class CGraph extends CGraphGeneral { ' LEFT JOIN permission p1 ON hh1.hgsetid=p1.hgsetid'. ' AND p1.ugsetid=p.ugsetid'. ' WHERE g.graphid=gi1.graphid'. - ' AND p1.permission IS NULL'. + ' AND p1.hgsetid IS NULL'. ')'; } diff --git include/classes/api/services/CGraphItem.php include/classes/api/services/CGraphItem.php index 917c65b68fe..f5251b19d6a 100644 --- include/classes/api/services/CGraphItem.php +++ include/classes/api/services/CGraphItem.php @@ -87,7 +87,7 @@ class CGraphItem extends CApiService { ' LEFT JOIN permission p1 ON hh1.hgsetid=p1.hgsetid'. ' AND p1.ugsetid=p.ugsetid'. ' WHERE gi.graphid=gi1.graphid'. - ' AND p1.permission IS NULL'. + ' AND p1.hgsetid IS NULL'. ')'; } diff --git include/classes/api/services/CGraphPrototype.php include/classes/api/services/CGraphPrototype.php index f196fa21168..5e21d483c0d 100644 --- include/classes/api/services/CGraphPrototype.php +++ include/classes/api/services/CGraphPrototype.php @@ -123,7 +123,7 @@ class CGraphPrototype extends CGraphGeneral { ' LEFT JOIN permission p1 ON hh1.hgsetid=p1.hgsetid'. ' AND p1.ugsetid=p.ugsetid'. ' WHERE g.graphid=gi1.graphid'. - ' AND p1.permission IS NULL'. + ' AND p1.hgsetid IS NULL'. ')'; } diff --git include/classes/api/services/CMaintenance.php include/classes/api/services/CMaintenance.php index 3f8076e7836..1e469648244 100644 --- include/classes/api/services/CMaintenance.php +++ include/classes/api/services/CMaintenance.php @@ -100,8 +100,8 @@ class CMaintenance extends CApiService { } $permission_condition = $options['editable'] - ? ' AND (p.permission IS NULL OR p.permission < '.PERM_READ_WRITE.')' - : ' AND p.permission IS NULL'; + ? ' AND (p.hgsetid IS NULL OR p.permission < '.PERM_READ_WRITE.')' + : ' AND p.hgsetid IS NULL'; $sqlParts['where'][] = 'NOT EXISTS ('. 'SELECT NULL'. diff --git include/classes/api/services/CProblem.php include/classes/api/services/CProblem.php index 2c9a7457c4d..3b8e6fa44c4 100644 --- include/classes/api/services/CProblem.php +++ include/classes/api/services/CProblem.php @@ -152,9 +152,10 @@ class CProblem extends CApiService { ' JOIN items i1 ON f1.itemid=i1.itemid'. ' JOIN host_hgset hh1 ON i1.hostid=hh1.hostid'. ' LEFT JOIN permission pp1 ON hh1.hgsetid=pp1.hgsetid'. - ' AND pp1.ugsetid=pp.ugsetid'. - ' WHERE p.objectid=f1.triggerid'. - ' AND pp1.permission IS NULL'. + ' AND pp1.ugsetid='.self::$userData['ugsetid']. + ' WHERE f.triggerid=f1.triggerid'. + ' AND i.itemid!=f1.itemid'. + ' AND pp1.hgsetid IS NULL'. ')'; if ($options['source'] == EVENT_SOURCE_TRIGGERS) { diff --git include/classes/api/services/CTrigger.php include/classes/api/services/CTrigger.php index 8d5dba8d962..6ff2b4c6532 100644 --- include/classes/api/services/CTrigger.php +++ include/classes/api/services/CTrigger.php @@ -155,9 +155,10 @@ class CTrigger extends CTriggerGeneral { ' JOIN items i1 ON f1.itemid=i1.itemid'. ' JOIN host_hgset hh1 ON i1.hostid=hh1.hostid'. ' LEFT JOIN permission p1 ON hh1.hgsetid=p1.hgsetid'. - ' AND p1.ugsetid=p.ugsetid'. - ' WHERE t.triggerid=f1.triggerid'. - ' AND p1.permission IS NULL'. + ' AND p1.ugsetid='.self::$userData['ugsetid']. + ' WHERE f.triggerid=f1.triggerid'. + ' AND i.itemid!=f1.itemid'. + ' AND p1.hgsetid IS NULL'. ')'; } diff --git include/classes/api/services/CTriggerPrototype.php include/classes/api/services/CTriggerPrototype.php index c27ebefd067..084fe9cbbba 100644 --- include/classes/api/services/CTriggerPrototype.php +++ include/classes/api/services/CTriggerPrototype.php @@ -126,9 +126,10 @@ class CTriggerPrototype extends CTriggerGeneral { ' JOIN items i1 ON f1.itemid=i1.itemid'. ' JOIN host_hgset hh1 ON i1.hostid=hh1.hostid'. ' LEFT JOIN permission p1 ON hh1.hgsetid=p1.hgsetid'. - ' AND p1.ugsetid=p.ugsetid'. - ' WHERE t.triggerid=f1.triggerid'. - ' AND p1.permission IS NULL'. + ' AND p1.ugsetid='.self::$userData['ugsetid']. + ' WHERE f.triggerid=f1.triggerid'. + ' AND i.itemid!=f1.itemid'. + ' AND p1.hgsetid IS NULL'. ')'; }