* calendar/esync: do not allow a minimum length of less then 1 for uid; esync: if no UID given, do not even try to fetch exceptions.

This commit is contained in:
Klaus Leithoff 2011-12-22 14:03:12 +00:00
parent c23be59179
commit 3d3f0724df
2 changed files with 25 additions and 11 deletions

View File

@ -1102,12 +1102,21 @@ return array(); // temporary disabling meeting requests from calendar
if ($rrule->exceptions)
{
// search real / non-virtual exceptions
$ex_events =& $this->calendar->search(array(
'query' => array('cal_uid' => $event['uid']),
'filter' => 'owner', // return all possible entries
'daywise' => false,
'date_format' => 'server',
));
if (!empty($event['uid']))
{
$ex_events =& $this->calendar->search(array(
'query' => array('cal_uid' => $event['uid']),
'filter' => 'owner', // return all possible entries
'daywise' => false,
'date_format' => 'server',
));
}
else
{
debugLog(__METHOD__.__LINE__." Exceptions found but no UID given for Event:".$event['id'].' Exceptions:'.array2string($event['recur_exception']));
}
if (count($ex_events)>=1) debugLog(__METHOD__.__LINE__." found ".count($ex_events)." exeptions for event with UID/ID:".$event['uid'].'/'.$event['id']);
$message->exceptions = array();
foreach($ex_events as $ex_event)
{
@ -1129,11 +1138,15 @@ return array(); // temporary disabling meeting requests from calendar
// add rest of exceptions as deleted
foreach($event['recur_exception'] as $exception_time)
{
$exception = new SyncAppointment(); // exceptions seems to be full SyncAppointments, with only starttime required
$exception->deleted = 1;
$exception->exceptionstarttime = $exception_time;
debugLog(__METHOD__."() added deleted exception ".date('Y-m-d H:i:s',$exception_time).' '.array2string($exception));
$message->exceptions[] = $exception;
if (!empty($exception_time))
{
if (empty($event['uid'])) debugLog(__METHOD__.__LINE__." BEWARE no UID given for this event:".$event['id'].' but exception is set for '.$exception_time);
$exception = new SyncAppointment(); // exceptions seems to be full SyncAppointments, with only starttime required
$exception->deleted = 1;
$exception->exceptionstarttime = $exception_time;
debugLog(__METHOD__."() added deleted exception ".date('Y-m-d H:i:s',$exception_time).' '.array2string($exception));
$message->exceptions[] = $exception;
}
}
}
/* disabled virtual exceptions for now, as AS does NOT support changed participants or status

View File

@ -954,6 +954,7 @@ ORDER BY cal_user_type, cal_usre_id
if (isset($GLOBALS['egw_info']['user']['preferences']['syncml']['minimum_uid_length']))
{
$minimum_uid_length = $GLOBALS['egw_info']['user']['preferences']['syncml']['minimum_uid_length'];
if (empty($minimum_uid_length) || $minimum_uid_length<=1) $minimum_uid_length = 8; // we just do not accept no uid, or uid way to short!
}
else
{