'event-id', 'event-created', 'event-edited', 'event-start', 'event-finish',
'event-summary', 'event-desc', 'event-location', 'event-type',
'event-nofinish', 'event-adjust', 'event-ignore', 'event-id',
- 'delivery_queue_count', 'delivery_queue_done'
+ 'delivery_queue_count', 'delivery_queue_done', 'delivery_queue_failed'
];
// Field list that is used to deliver items via the protocols
return ($recipients1 == $recipients2);
}
- // returns an array of contact-ids that are allowed to see this object
- public static function enumeratePermissions(array $obj)
+ /**
+ * Returns an array of contact-ids that are allowed to see this object
+ *
+ * @param array $obj Item array with at least uid, allow_cid, allow_gid, deny_cid and deny_gid
+ * @param bool $check_dead Prunes unavailable contacts from the result
+ * @return array
+ * @throws \Exception
+ */
+ public static function enumeratePermissions(array $obj, bool $check_dead = false)
{
$allow_people = expand_acl($obj['allow_cid']);
- $allow_groups = Group::expand($obj['uid'], expand_acl($obj['allow_gid']));
+ $allow_groups = Group::expand($obj['uid'], expand_acl($obj['allow_gid']), $check_dead);
$deny_people = expand_acl($obj['deny_cid']);
- $deny_groups = Group::expand($obj['uid'], expand_acl($obj['deny_gid']));
+ $deny_groups = Group::expand($obj['uid'], expand_acl($obj['deny_gid']), $check_dead);
$recipients = array_unique(array_merge($allow_people, $allow_groups));
$deny = array_unique(array_merge($deny_people, $deny_groups));
$recipients = array_diff($recipients, $deny);