forked from extern/egroupware
do NOT push participants of type email for privacy reasons
This commit is contained in:
parent
0cea328928
commit
efaf9771d0
@ -92,7 +92,8 @@ namespace EGroupware\Api;
|
||||
* 'fetch' => 'app.class.method', // method to return entry data for a given id. the method called should support id, and expected mime-type
|
||||
* // basically you should return something like array(id, title, mimetype, body, linked-files)
|
||||
*
|
||||
* 'push_data' => "key" | ["key1", ...] // keys of ACL relevant and privacy save data needed for push of changes to client
|
||||
* 'push_data' => <callable> | "key" | ["key1", ...] // keys of ACL relevant and privacy save data needed for push of changes to client
|
||||
* // or callable to do the cleaning eg. used in calendar
|
||||
*
|
||||
* 'additional' => array( // allow one app to register sub-types,
|
||||
* 'app-sub' => array( // different from 'types' approach above
|
||||
|
@ -68,10 +68,30 @@ class calendar_hooks
|
||||
'merge' => true,
|
||||
'entry' => 'Event',
|
||||
'entries' => 'Events',
|
||||
'push_data' => ['id','owner','participants','start','end']
|
||||
'push_data' => self::class.'::prepareEventPush',
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Prepare event to be pushed via Link::notify_update()
|
||||
*
|
||||
* Remove privacy sensitive data:
|
||||
* - participants of type email
|
||||
*
|
||||
* @param $event
|
||||
* @return array
|
||||
*/
|
||||
static public function prepareEventPush($event)
|
||||
{
|
||||
$event = array_intersect_key($event, array_flip(['id','owner','participants','start','end']));
|
||||
foreach($event['participants'] as $uid => $status)
|
||||
{
|
||||
if ($uid[0] === 'e') unset($event['participants'][$uid]);
|
||||
}
|
||||
return $event;
|
||||
}
|
||||
|
||||
/**
|
||||
* Hook called to retrieve a app specific exportLimit
|
||||
*
|
||||
|
Loading…
Reference in New Issue
Block a user