diff --git a/infolog/inc/class.infolog_bo.inc.php b/infolog/inc/class.infolog_bo.inc.php index 20d8c2bd2d..d9d8309201 100644 --- a/infolog/inc/class.infolog_bo.inc.php +++ b/infolog/inc/class.infolog_bo.inc.php @@ -113,6 +113,13 @@ class infolog_bo * @var infolog_tracking */ var $tracking; + /** + * Variable used to tell read functions to ignore the acl + * used in async_notification; + * + * @var ignore_acl + */ + static $ignore_acl; /** * Maximum number of line characters (-_+=~) allowed in a mail, to not stall the layout. * Longer lines / biger number of these chars are truncated to that max. number or chars. @@ -1580,12 +1587,18 @@ class infolog_bo break; } //error_log("notifiying $user($email) about $info[info_subject]: $info[message]"); + // ignore acl for further processing, needed to instruct bo->read to ignore the + // acl, when called for tracking -> get_signature -> merge to resolve possible + // infolog specific placeholders in infolog_egw_record + self::$ignore_acl = true; $this->tracking->send_notification($info,null,$email,$user,$pref); + self::$ignore_acl = false; $notified_info_ids[] = $info['info_id']; } } } + $GLOBALS['egw_info']['user']['account_id'] = $save_account_id; $GLOBALS['egw_info']['user']['preferences'] = $save_prefs; } diff --git a/infolog/inc/class.infolog_egw_record.inc.php b/infolog/inc/class.infolog_egw_record.inc.php index d0c563d581..55f3e72cb4 100644 --- a/infolog/inc/class.infolog_egw_record.inc.php +++ b/infolog/inc/class.infolog_egw_record.inc.php @@ -41,7 +41,10 @@ class infolog_egw_record implements importexport_iface_egw_record $this->identifier = $_identifier; if(self::$bo == null) self::$bo = new infolog_bo(); if($_identifier) { - $this->set_record(self::$bo->read($this->identifier)); + $lia = false; + if (isset(infolog_bo::$ignore_acl)) $lia = infolog_bo::$ignore_acl; + $rec = self::$bo->read($this->identifier,true,'ts',$lia); + if (is_array($rec)) $this->set_record($rec); } }