*/
class filesystem_attachments extends rcube_plugin
{
- public $task = 'mail|addressbook';
+ public $task = '?(?!login).*';
function init()
{
function upload($args)
{
$args['status'] = false;
+ $group = $args['group'];
$rcmail = rcmail::get_instance();
// use common temp dir for file uploads
$args['status'] = true;
// Note the file for later cleanup
- $_SESSION['plugins']['filesystem_attachments']['tmp_files'][] = $tmpfname;
+ $_SESSION['plugins']['filesystem_attachments'][$group][] = $tmpfname;
}
return $args;
*/
function save($args)
{
+ $group = $args['group'];
$args['status'] = false;
if (!$args['path']) {
$args['status'] = true;
// Note the file for later cleanup
- $_SESSION['plugins']['filesystem_attachments']['tmp_files'][] = $args['path'];
+ $_SESSION['plugins']['filesystem_attachments'][$group][] = $args['path'];
return $args;
}
// $_SESSION['compose']['attachments'] is not a complete record of
// temporary files because loading a draft or starting a forward copies
// the file to disk, but does not make an entry in that array
- if (is_array($_SESSION['plugins']['filesystem_attachments']['tmp_files'])){
- foreach ($_SESSION['plugins']['filesystem_attachments']['tmp_files'] as $filename){
- if(file_exists($filename)){
- unlink($filename);
+ if (is_array($_SESSION['plugins']['filesystem_attachments'])){
+ foreach ($_SESSION['plugins']['filesystem_attachments'] as $group => $files) {
+ if ($args['group'] && $args['group'] != $group)
+ continue;
+ foreach ((array)$files as $filename){
+ if(file_exists($filename)){
+ unlink($filename);
+ }
}
+ unset($_SESSION['plugins']['filesystem_attachments'][$group]);
}
- unset($_SESSION['plugins']['filesystem_attachments']['tmp_files']);
}
return $args;
}