diff --git a/plugins/tasklist/drivers/kolab/tasklist_kolab_driver.php b/plugins/tasklist/drivers/kolab/tasklist_kolab_driver.php index 74442bd5..f3e902a6 100644 --- a/plugins/tasklist/drivers/kolab/tasklist_kolab_driver.php +++ b/plugins/tasklist/drivers/kolab/tasklist_kolab_driver.php @@ -84,14 +84,27 @@ class tasklist_kolab_driver extends tasklist_driver $name = kolab_storage::folder_displayname(kolab_storage::object_name($utf7name), $listnames); + if ($folder->get_owner() == $_SESSION['username']) { + $readonly = false; + $alarms = true; + } + else { + $alarms = false; + $readonly = true; + if (($rights = $folder->get_myrights()) && !PEAR::isError($rights)) { + if (strpos($rights, 'i') !== false) + $readonly = false; + } + } + $list_id = kolab_storage::folder_id($utf7name); $tasklist = array( 'id' => $list_id, 'name' => $name, 'editname' => $editname, 'color' => 'CC0000', - 'showalarms' => $prefs[$list_id]['showalarms'], - 'editable' => true, + 'showalarms' => isset($prefs[$list_id]['showalarms']) ? $prefs[$list_id]['showalarms'] : $alarms, + 'editable' => !$readonly, 'active' => $folder->is_subscribed(kolab_storage::SERVERSIDE_SUBSCRIPTION), 'parentfolder' => $path_imap, ); diff --git a/plugins/tasklist/tasklist_ui.php b/plugins/tasklist/tasklist_ui.php index a7406703..f0b0cbd6 100644 --- a/plugins/tasklist/tasklist_ui.php +++ b/plugins/tasklist/tasklist_ui.php @@ -131,7 +131,7 @@ class tasklist_ui $attrib['name'] = 'list'; $select = new html_select($attrib); foreach ((array)$this->plugin->driver->get_lists() as $id => $prop) { - if (!$prop['readonly']) + if ($prop['editable']) $select->add($prop['name'], $id); }