From 2bc84411e2898eaad5e72332e26d4c9aa677ee44 Mon Sep 17 00:00:00 2001 From: Klaus Leithoff Date: Wed, 6 Feb 2013 13:21:21 +0000 Subject: [PATCH] introduce static variable ignore_acl for the use in async infolog notification to make sure that we are able to resolve infolog specific placeholders for notification/signature merge --- infolog/inc/class.infolog_bo.inc.php | 13 +++++++++++++ infolog/inc/class.infolog_egw_record.inc.php | 5 ++++- 2 files changed, 17 insertions(+), 1 deletion(-) 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); } }