From cb4a908d489e7aff88e47652ab07eef110d54b49 Mon Sep 17 00:00:00 2001 From: Thomas Bruederli Date: Sat, 6 Aug 2011 17:51:08 +0200 Subject: [PATCH] Create private calendar folder if no writeable calendar is available (#269) --- plugins/calendar/drivers/kolab/kolab_driver.php | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/plugins/calendar/drivers/kolab/kolab_driver.php b/plugins/calendar/drivers/kolab/kolab_driver.php index 576c2724..8ff8c7cd 100644 --- a/plugins/calendar/drivers/kolab/kolab_driver.php +++ b/plugins/calendar/drivers/kolab/kolab_driver.php @@ -34,6 +34,7 @@ class kolab_driver extends calendar_driver private $rc; private $cal; private $calendars; + private $has_writeable = false; /** * Default constructor @@ -79,6 +80,8 @@ class kolab_driver extends calendar_driver foreach ($names as $utf7name => $name) { $calendar = new kolab_calendar($utf7name, $this->cal); $this->calendars[$calendar->id] = $calendar; + if (!$calendar->readonly) + $this->has_writeable = true; } } @@ -92,9 +95,11 @@ class kolab_driver extends calendar_driver public function list_calendars() { // attempt to create a default calendar for this user - if (empty($this->calendars)) { - if ($this->create_calendar(array('name' => 'Calendar', 'color' => 'cc0000'))) + if (!$this->has_writeable) { + if ($this->create_calendar(array('name' => 'Calendar', 'color' => 'cc0000'))) { + unset($this->calendars); $this->_read_calendars(); + } } $calendars = $names = array();