Properly cleanup temporary saved attachment files

This commit is contained in:
Thomas Bruederli 2012-08-01 16:26:49 +02:00
parent 8062cdb94a
commit c8b6f57d66
2 changed files with 20 additions and 2 deletions

View file

@ -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');
}
}

View file

@ -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');
}
}
/**
*
*/