diff --git a/plugins/calendar/calendar.php b/plugins/calendar/calendar.php index 335c6721..23784170 100644 --- a/plugins/calendar/calendar.php +++ b/plugins/calendar/calendar.php @@ -1747,7 +1747,7 @@ class calendar extends rcube_plugin $eventid = 'cal:'.$event['id']; if (!empty($_SESSION['event_session']) && ($eventid = $_SESSION['event_session']['id'])) { $this->rc->plugins->exec_hook('attachments_cleanup', array('group' => $eventid)); - unset($_SESSION['event_session']); + $this->rc->session->remove('event_session'); } } diff --git a/plugins/tasklist/tasklist.php b/plugins/tasklist/tasklist.php index 6dec0d40..ff99f2e8 100644 --- a/plugins/tasklist/tasklist.php +++ b/plugins/tasklist/tasklist.php @@ -162,13 +162,16 @@ class tasklist extends rcube_plugin if ($success = $this->driver->create_task($rec)) { $refresh = $this->driver->get_task($rec); if ($temp_id) $refresh['tempid'] = $temp_id; + $this->cleanup_task($rec); } break; case 'edit': $rec = $this->prepare_task($rec); - if ($success = $this->driver->edit_task($rec)) + if ($success = $this->driver->edit_task($rec)) { $refresh = $this->driver->get_task($rec); + $this->cleanup_task($rec); + } break; case 'delete': @@ -319,6 +322,21 @@ class tasklist extends rcube_plugin return $rec; } + + /** + * Releases some resources after successful save + */ + private function cleanup_task(&$rec) + { + // remove temp. attachment files + $taskid = $rec['id']; + if (!empty($_SESSION['tasklist_session']) && ($taskid = $_SESSION['tasklist_session']['id'])) { + $this->rc->plugins->exec_hook('attachments_cleanup', array('group' => $taskid)); + $this->rc->session->remove('tasklist_session'); + } + } + + /** * */