From c8b6f57d6674f736026d27daf72a9eae127abc94 Mon Sep 17 00:00:00 2001 From: Thomas Bruederli Date: Wed, 1 Aug 2012 16:26:49 +0200 Subject: [PATCH] Properly cleanup temporary saved attachment files --- plugins/calendar/calendar.php | 2 +- plugins/tasklist/tasklist.php | 20 +++++++++++++++++++- 2 files changed, 20 insertions(+), 2 deletions(-) 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'); + } + } + + /** * */