From b24bd6f245b9527592ce0fcfbc67bb0a145c1b8c Mon Sep 17 00:00:00 2001 From: "Jeroen van Meeuwen (Kolab Systems)" Date: Fri, 31 Jul 2015 16:11:00 +0200 Subject: Escape type errors If a user is modified, but already has a result_attribute value, still create the mailbox if it doesn't already exist --- pykolab/auth/ldap/__init__.py | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) (limited to 'pykolab/auth/ldap') diff --git a/pykolab/auth/ldap/__init__.py b/pykolab/auth/ldap/__init__.py index f823d46..6b9f56c 100644 --- a/pykolab/auth/ldap/__init__.py +++ b/pykolab/auth/ldap/__init__.py @@ -176,7 +176,10 @@ class LDAP(pykolab.base.Base): log.error(_("Authentication cache failed: %r") % (errmsg)) pass - user_filter = self.config_get_raw('user_filter') % ({'base_dn':base_dn}) + try: + user_filter = self.config_get_raw('user_filter') % ({'base_dn':base_dn}) + except TypeError, errmsg: + user_filter = self.config_get_raw('user_filter') _filter = '(&(|' @@ -1798,8 +1801,24 @@ class LDAP(pykolab.base.Base): ) cache.get_entry(self.domain, entry) + else: + imap_mailbox = "user%s%s" % ( + self.imap.get_separator(), + entry[result_attribute] + ) + + if not self.imap.has_folder(imap_mailbox): + self.imap_user_mailbox_create( + entry[result_attribute] + ) - self.user_quota(entry, "user%s%s" % (self.imap.get_separator(),entry[result_attribute])) + self.user_quota( + entry, + "user%s%s" % ( + self.imap.get_separator(), + entry[result_attribute] + ) + ) if conf.has_option(self.domain, 'sieve_mgmt'): sieve_mgmt_enabled = conf.get(self.domain, 'sieve_mgmt') -- cgit v1.1