[prev in list] [next in list] [prev in thread] [next in thread]
List: kolab-commits
Subject: plugins/libkolab
From: Thomas_BrĂ¼derli <bruederli () kolabsys ! com>
Date: 2014-11-27 8:34:24
Message-ID: 20141127083424.3479F6A3A5 () app08 ! kolabsys ! com
[Download RAW message or body]
plugins/libkolab/SQL/mysql/2014112700.sql | 2 ++
plugins/libkolab/lib/kolab_storage_folder.php | 2 +-
plugins/libkolab/lib/kolab_storage_folder_api.php | 22 ++++++++++++++--------
3 files changed, 17 insertions(+), 9 deletions(-)
New commits:
commit ae93c7b345f8ff3cb33302472ec53a27afbc250c
Author: Thomas Bruederli <bruederli@kolabsys.com>
Date: Thu Nov 27 09:33:40 2014 +0100
Create domain-aware cache identifiers for groupware folders (#3991)
diff --git a/plugins/libkolab/SQL/mysql/2014112700.sql \
b/plugins/libkolab/SQL/mysql/2014112700.sql new file mode 100644
index 0000000..90c77b8
--- /dev/null
+++ b/plugins/libkolab/SQL/mysql/2014112700.sql
@@ -0,0 +1,2 @@
+-- delete cache entries for old folder identifiers
+DELETE FROM `kolab_folders` WHERE `resource` LIKE 'imap://anonymous@%';
diff --git a/plugins/libkolab/lib/kolab_storage_folder.php \
b/plugins/libkolab/lib/kolab_storage_folder.php index d33f9d0..d6d17c8 100644
--- a/plugins/libkolab/lib/kolab_storage_folder.php
+++ b/plugins/libkolab/lib/kolab_storage_folder.php
@@ -97,7 +97,7 @@ class kolab_storage_folder extends kolab_storage_folder_api
}
// compose fully qualified ressource uri for this instance
- $this->resource_uri = 'imap://' . urlencode($this->get_owner()) . '@' . \
$this->imap->options['host'] . '/' . $subpath; + $this->resource_uri = \
'imap://' . urlencode($this->get_owner(true)) . '@' . $this->imap->options['host'] . \
'/' . $subpath; return $this->resource_uri;
}
diff --git a/plugins/libkolab/lib/kolab_storage_folder_api.php \
b/plugins/libkolab/lib/kolab_storage_folder_api.php index ea603b1..7280389 100644
--- a/plugins/libkolab/lib/kolab_storage_folder_api.php
+++ b/plugins/libkolab/lib/kolab_storage_folder_api.php
@@ -85,9 +85,10 @@ abstract class kolab_storage_folder_api
/**
* Returns the owner of the folder.
*
+ * @param boolean Return a fully qualified owner name (i.e. including domain \
for shared folders)
* @return string The owner of this folder.
*/
- public function get_owner()
+ public function get_owner($fully_qualified = false)
{
// return cached value
if (isset($this->owner))
@@ -106,16 +107,21 @@ abstract class kolab_storage_folder_api
break;
default:
- list($prefix, $user) = explode($this->imap->get_hierarchy_delimiter(), \
$info['name']);
- if (strpos($user, '@') === false) {
- $domain = strstr($rcmail->get_user_name(), '@');
- if (!empty($domain))
- $user .= $domain;
- }
- $this->owner = $user;
+ list($prefix, $this->owner) = \
explode($this->imap->get_hierarchy_delimiter(), $info['name']); + \
$fully_qualified = true; // enforce email addresses (backwards compatibility) \
break; }
+ if ($fully_qualified && strpos($this->owner, '@') === false) {
+ // extract domain from current user name
+ $domain = strstr($rcmail->get_user_name(), '@');
+ // fall back to mail_domain config option
+ if (empty($domain) && ($mdomain = \
$rcmail->config->mail_domain($this->imap->options['host']))) { + \
$domain = '@' . $mdomain; + }
+ $this->owner .= $domain;
+ }
+
return $this->owner;
}
_______________________________________________
commits mailing list
commits@lists.kolab.org
https://lists.kolab.org/mailman/listinfo/commits
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic