$query="SELECT b.transport_id, b.transport_type, b.transport_name FROM alert_transport_map AS a LEFT JOIN alert_transports AS b ON b.transport_id=a.transport_or_group_id WHERE a.target_type='single' AND a.rule_id=? UNION DISTINCT SELECT d.transport_id, d.transport_type, d.transport_name FROM alert_transport_map AS a LEFT JOIN alert_transport_groups AS b ON a.transport_or_group_id=b.transport_group_id LEFT JOIN transport_group_transport AS c ON b.transport_group_id=c.transport_group_id LEFT JOIN alert_transports AS d ON c.transport_id=d.transport_id WHERE a.target_type='group' AND a.rule_id=?";
$tmpa=dbFetchRows("SELECT user_id FROM bill_perms WHERE bill_id = ?",array($result["bill_id"]));
foreach($tmpaas$tmp){
$uids[$tmp['user_id']]=$tmp['user_id'];
}
}
if(is_numeric($result["port_id"])){
$tmpa=dbFetchRows("SELECT user_id FROM ports_perms WHERE port_id = ?",array($result["port_id"]));
foreach($tmpaas$tmp){
$uids[$tmp['user_id']]=$tmp['user_id'];
}
}
if(is_numeric($result["device_id"])){
if(Config::get('alert.syscontact')==true){
if(dbFetchCell("SELECT attrib_value FROM devices_attribs WHERE attrib_type = 'override_sysContact_bool' AND device_id = ?",[$result["device_id"]])){
$tmpa=dbFetchCell("SELECT attrib_value FROM devices_attribs WHERE attrib_type = 'override_sysContact_string' AND device_id = ?",array($result["device_id"]));
}else{
$tmpa=dbFetchCell("SELECT sysContact FROM devices WHERE device_id = ?",array($result["device_id"]));
}
if(!empty($tmpa)){
$contacts[$tmpa]='';
}
}
$tmpa=dbFetchRows("SELECT user_id FROM devices_perms WHERE device_id = ?",array($result["device_id"]));
LEFT JOIN alert_device_map d ON a.id=d.rule_id AND (a.invert_map = 0 OR a.invert_map = 1 AND d.device_id = ?)
LEFT JOIN alert_group_map g ON a.id=g.rule_id AND (a.invert_map = 0 OR a.invert_map = 1 AND g.group_id IN (SELECT DISTINCT device_group_id FROM device_group_device WHERE device_id = ?))
LEFT JOIN device_group_device dg ON g.group_id=dg.device_group_id AND dg.device_id = ?
WHERE a.disabled = 0 AND (
(d.device_id IS NULL AND g.group_id IS NULL)
OR (a.invert_map = 0 AND (d.device_id=? OR dg.device_id=?))
OR (a.invert_map = 1 AND (d.device_id != ? OR d.device_id IS NULL) AND (dg.device_id != ? OR dg.device_id IS NULL))