Workaround libkolabxml bug where internally set 'created' date is not valid (UTC)

This commit is contained in:
Aleksander Machniak 2016-09-02 10:26:59 +02:00
parent ea6d351812
commit 87b18454ae

View file

@ -520,11 +520,11 @@ abstract class kolab_format
$this->obj->setUid($object['uid']); $this->obj->setUid($object['uid']);
// set some automatic values if missing // set some automatic values if missing
if (empty($object['created']) && method_exists($this->obj, 'setCreated')) { if (method_exists($this->obj, 'setCreated')) {
$cdt = $this->obj->created(); // Always set created date to workaround libkolabxml (>1.1.4) bug
$object['created'] = $cdt && $cdt->isValid() ? self::php_datetime($cdt) : new DateTime('now', new DateTimeZone('UTC')); $created = $object['created'] ?: new DateTime('now');
if (!$cdt || !$cdt->isValid()) $created->setTimezone(new DateTimeZone('UTC')); // must be UTC
$this->obj->setCreated(self::get_datetime($object['created'])); $this->obj->setCreated(self::get_datetime($created));
} }
$object['changed'] = new DateTime('now', new DateTimeZone('UTC')); $object['changed'] = new DateTime('now', new DateTimeZone('UTC'));