6 commits - configure.ac pykolab/auth pykolab/imap pykolab/xml
Jeroen van Meeuwen
vanmeeuwen at kolabsys.com
Mon Jul 15 18:31:17 CEST 2013
configure.ac | 2 +-
pykolab/auth/ldap/__init__.py | 27 +++++++++++++++++++--------
pykolab/imap/cyrus.py | 10 +++++++++-
pykolab/xml/event.py | 1 +
4 files changed, 30 insertions(+), 10 deletions(-)
New commits:
commit d2a7be158191fb1bc8733ac09ecfb5dcbc14716b
Author: Jeroen van Meeuwen (Kolab Systems) <vanmeeuwen at kolabsys.com>
Date: Mon Jul 15 17:31:06 2013 +0100
Fix reference to attribute key
diff --git a/pykolab/auth/ldap/__init__.py b/pykolab/auth/ldap/__init__.py
index cbe4830..8b2e841 100644
--- a/pykolab/auth/ldap/__init__.py
+++ b/pykolab/auth/ldap/__init__.py
@@ -1611,7 +1611,7 @@ class LDAP(pykolab.base.Base):
mailserver_attribute = self.config_get('mailserver_attribute')
if entry.has_key(mailserver_attribute):
- server = entry['mailserver_attribute']
+ server = entry[mailserver_attribute]
if not entry.has_key('kolabtargetfolder'):
entry['kolabtargetfolder'] = self.get_entry_attribute(
commit ade3208d4b0bf5bf36b75d2045026b23213f96c7
Author: Jeroen van Meeuwen (Kolab Systems) <vanmeeuwen at kolabsys.com>
Date: Mon Jul 15 12:56:51 2013 +0100
Improvide the find_recipient() against a multi-domain environment
diff --git a/pykolab/auth/ldap/__init__.py b/pykolab/auth/ldap/__init__.py
index 082484a..cbe4830 100644
--- a/pykolab/auth/ldap/__init__.py
+++ b/pykolab/auth/ldap/__init__.py
@@ -374,8 +374,16 @@ class LDAP(pykolab.base.Base):
if len(_filter) <= 6:
return None
+ config_base_dn = self.config_get('base_dn')
+ ldap_base_dn = self._kolab_domain_root_dn(self.domain)
+
+ if not ldap_base_dn == None and not ldap_base_dn == config_base_dn:
+ base_dn = ldap_base_dn
+ else:
+ base_dn = config_base_dn
+
_results = self.ldap.search_s(
- self.config_get('base_dn'),
+ base_dn,
scope=ldap.SCOPE_SUBTREE,
filterstr=_filter,
attrlist=result_attributes,
@@ -419,8 +427,6 @@ class LDAP(pykolab.base.Base):
__filter_prefix = "(&%s" % resource_filter
__filter_suffix = ")"
- resource_base_dn = self.config_get('resource_base_dn')
-
recipient_address_attrs = self.config_get_list("mail_attributes")
result_attributes = recipient_address_attrs
@@ -444,6 +450,14 @@ class LDAP(pykolab.base.Base):
if len(_filter) <= 6:
return None
+ config_base_dn = self.config_get('resource_base_dn')
+ ldap_base_dn = self._kolab_domain_root_dn(self.domain)
+
+ if not ldap_base_dn == None and not ldap_base_dn == config_base_dn:
+ resource_base_dn = ldap_base_dn
+ else:
+ resource_base_dn = config_base_dn
+
_results = self.ldap.search_s(
resource_base_dn,
scope=ldap.SCOPE_SUBTREE,
commit d2fd54d3cced50400018c46d53ee56598bfcc109
Author: Jeroen van Meeuwen (Kolab Systems) <vanmeeuwen at kolabsys.com>
Date: Fri Jul 12 14:52:10 2013 +0100
Bump the version
diff --git a/configure.ac b/configure.ac
index ae9ccaa..0c5aa2c 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,4 +1,4 @@
-AC_INIT([pykolab], 0.6.1)
+AC_INIT([pykolab], 0.6.2)
AC_SUBST([RELEASE], 1)
AC_CONFIG_SRCDIR(pykolab/constants.py.in)
commit f2d0080611c583d58ad1b0b454912e1397eea313
Author: Jeroen van Meeuwen (Kolab Systems) <vanmeeuwen at kolabsys.com>
Date: Fri Jul 12 14:51:41 2013 +0100
We can't authenticate a kolab_user_filter specifically, without excluding cyrus-admin
diff --git a/pykolab/auth/ldap/__init__.py b/pykolab/auth/ldap/__init__.py
index e0118d1..082484a 100644
--- a/pykolab/auth/ldap/__init__.py
+++ b/pykolab/auth/ldap/__init__.py
@@ -151,10 +151,7 @@ class LDAP(pykolab.base.Base):
self.connect()
self._bind()
- user_filter = self.config_get('kolab_user_filter')
-
- if user_filter == None:
- user_filter = self.config_get('user_filter')
+ user_filter = self.config_get('user_filter')
_filter = '(&(|'
commit ee0a5b4487017fbb580ce87e8e69ba2e73875896
Author: Jeroen van Meeuwen (Kolab Systems) <vanmeeuwen at kolabsys.com>
Date: Tue Jul 9 14:49:04 2013 +0100
Make sure events hold the required X-Kolab-MIME-Version: 3.0 header
diff --git a/pykolab/xml/event.py b/pykolab/xml/event.py
index 97a0511..686039b 100644
--- a/pykolab/xml/event.py
+++ b/pykolab/xml/event.py
@@ -872,6 +872,7 @@ class Event(object):
msg['To'] = ', '.join([x.__str__() for x in self.get_attendees()])
msg['Date'] = formatdate(localtime=True)
+ msg.add_header('X-Kolab-MIME-Version', '3.0')
msg.add_header('X-Kolab-Type', 'application/x-vnd.kolab.event')
text = utils.multiline_message("""
commit c59e6fcb4649436427cdecb14b2bfb12e1a143b0
Author: Jeroen van Meeuwen (Kolab Systems) <vanmeeuwen at kolabsys.com>
Date: Sat Jul 6 11:06:48 2013 +0100
Use utf-7 names when deleting folders by wildcard match as well
diff --git a/pykolab/imap/cyrus.py b/pykolab/imap/cyrus.py
index f1f379d..ed3b29f 100644
--- a/pykolab/imap/cyrus.py
+++ b/pykolab/imap/cyrus.py
@@ -193,6 +193,14 @@ class Cyrus(cyruslib.CYRUS):
return server
+ def folder_utf7(self, folder):
+ from pykolab import imap_utf7
+ return imap_utf7.encode(folder)
+
+ def folder_utf8(self, folder):
+ from pykolab import imap_utf7
+ return imap_utf7.decode(folder)
+
def _setquota(self, mailfolder, quota):
"""
Login to the actual backend server.
@@ -355,7 +363,7 @@ class Cyrus(cyruslib.CYRUS):
if not mbox['domain'] == None:
verify_folder_search = "%s@%s" % (verify_folder_search, mbox['domain'])
- folders = self.lm(verify_folder_search)
+ folders = self.lm(self.folder_utf7(verify_folder_search))
# NOTE: Case also covered is valid hexadecimal folders; won't be the
# actual check as intended, but doesn't give you anyone else's data
More information about the commits
mailing list