summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas Bruederli <bruederli@kolabsys.com>2015-02-02 19:08:14 +0100
committerThomas Bruederli <bruederli@kolabsys.com>2015-02-02 19:08:14 +0100
commit1e6d596fd0c9931a40a054c7294073a4c33a08de (patch)
tree70a5b22fbe853950b3849fb2ae15bff358b9e87e
parent8bd5f266bcb6a230274984e085260795c052919d (diff)
downloadpykolab-1e6d596fd0c9931a40a054c7294073a4c33a08de.tar.gz
Fix pykolab.imap.namespaces function return and usage (#4277)
-rw-r--r--pykolab/imap/__init__.py12
-rw-r--r--wallace/module_invitationpolicy.py9
2 files changed, 7 insertions, 14 deletions
diff --git a/pykolab/imap/__init__.py b/pykolab/imap/__init__.py
index 4acc58f..356a3ff 100644
--- a/pykolab/imap/__init__.py
+++ b/pykolab/imap/__init__.py
@@ -319,21 +319,17 @@ class IMAP(object):
_namespaces = re.split(r"\)\)\s\(\(", _namespaces)
- _other_users = [
- ''.join(_namespaces[1].replace('((','').replace('))','').split()[-1])
- ]
-
if len(_namespaces) >= 3:
_shared = []
- _shared.append(' '.join(_namespaces[2].replace('((','').replace('))','').split()[:-1]))
+ _shared.append(' '.join(_namespaces[2].replace('((','').replace('))','').split()[:-1]).replace('"', ''))
if len(_namespaces) >= 2:
- _other_users = ' '.join(_namespaces[1].replace('((','').replace('))','').split()[:-1])
+ _other_users = ' '.join(_namespaces[1].replace('((','').replace('))','').split()[:-1]).replace('"', '')
if len(_namespaces) >= 1:
- _personal = _namespaces[0].replace('((','').replace('))','').split()[0]
+ _personal = _namespaces[0].replace('((','').replace('))','').split()[0].replace('"', '')
- return (_personal.replace('"', ''), _other_users.replace('"', ''), [x.replace('"', '') for x in _shared])
+ return (_personal, _other_users, _shared)
def set_acl(self, folder, identifier, acl):
"""
diff --git a/wallace/module_invitationpolicy.py b/wallace/module_invitationpolicy.py
index 0a38fcc..6ffc5e5 100644
--- a/wallace/module_invitationpolicy.py
+++ b/wallace/module_invitationpolicy.py
@@ -727,15 +727,12 @@ def list_user_folders(user_rec, type):
(ns_personal, ns_other, ns_shared) = imap.namespaces()
- if isinstance(ns_shared, list):
- ns_shared = ns_shared[0]
- if isinstance(ns_other, list):
- ns_other = ns_other[0]
-
for folder in folders:
# exclude shared and other user's namespace
# TODO: list shared folders the user has write privileges ?
- if folder.startswith(ns_other) or folder.startswith(ns_shared):
+ if not ns_other is None and folder.startswith(ns_other):
+ continue;
+ if not ns_shared is None and len([_ns for _ns in ns_shared if folder.startswith(_ns)]) > 0:
continue;
metadata = imap.get_metadata(folder)