summaryrefslogtreecommitdiff
path: root/plugins/database_attachments/database_attachments.php
diff options
context:
space:
mode:
authorthomasb <thomasb@208e9e7b-5314-0410-a742-e7e81cd9613c>2011-03-10 20:21:55 +0000
committerthomasb <thomasb@208e9e7b-5314-0410-a742-e7e81cd9613c>2011-03-10 20:21:55 +0000
commitde1d318f54fa75a24f1a7317862b69b90d330239 (patch)
treed11c4dcf0dde19a4e9b33e16c1ef425cfebfbf6d /plugins/database_attachments/database_attachments.php
parent0b178f16f1a1139a45cc5478bd2ed3e992a61bc8 (diff)
Manage attachments in groups
git-svn-id: https://svn.roundcube.net/trunk@4605 208e9e7b-5314-0410-a742-e7e81cd9613c
Diffstat (limited to 'plugins/database_attachments/database_attachments.php')
-rw-r--r--plugins/database_attachments/database_attachments.php16
1 files changed, 9 insertions, 7 deletions
diff --git a/plugins/database_attachments/database_attachments.php b/plugins/database_attachments/database_attachments.php
index 919beacbf..970a36754 100644
--- a/plugins/database_attachments/database_attachments.php
+++ b/plugins/database_attachments/database_attachments.php
@@ -22,9 +22,10 @@ class database_attachments extends filesystem_attachments
/**
* Helper method to generate a unique key for the given attachment file
*/
- private function _key($filepath)
+ private function _key($args)
{
- return $this->cache_prefix.md5(mktime().$filepath.$_SESSION['user_id']);
+ $uname = $args['path'] ? $args['path'] : $args['name'];
+ return $this->cache_prefix . $args['group'] . md5(mktime() . $uname . $_SESSION['user_id']);
}
/**
@@ -34,7 +35,7 @@ class database_attachments extends filesystem_attachments
{
$args['status'] = false;
$rcmail = rcmail::get_instance();
- $key = $this->_key($args['path']);
+ $key = $this->_key($args);
$data = base64_encode(file_get_contents($args['path']));
$status = $rcmail->db->query(
@@ -62,10 +63,10 @@ class database_attachments extends filesystem_attachments
$args['status'] = false;
$rcmail = rcmail::get_instance();
- $key = $this->_key($args['name']);
+ $key = $this->_key($args);
- if ($args['path'])
- $args['data'] = file_get_contents($args['path']);
+ if ($args['path'])
+ $args['data'] = file_get_contents($args['path']);
$data = base64_encode($args['data']);
@@ -146,11 +147,12 @@ class database_attachments extends filesystem_attachments
*/
function cleanup($args)
{
+ $prefix = $this->cache_prefix . $args['group'];
$rcmail = rcmail::get_instance();
$rcmail->db->query(
"DELETE FROM ".get_table_name('cache')."
WHERE user_id=?
- AND cache_key like '{$this->cache_prefix}%'",
+ AND cache_key like '{$prefix}%'",
$_SESSION['user_id']);
}
}