7 commits - configure.ac kolabd/__init__.py pykolab/auth pykolab/imap pykolab.spec.in

Jeroen van Meeuwen vanmeeuwen at kolabsys.com
Sun Apr 8 15:00:11 CEST 2012


 configure.ac                  |    2 +-
 kolabd/__init__.py            |    2 ++
 pykolab.spec.in               |   10 +++++-----
 pykolab/auth/ldap/__init__.py |   16 +++++++++-------
 pykolab/imap/__init__.py      |    2 +-
 pykolab/imap/cyrus.py         |    9 ++++-----
 6 files changed, 22 insertions(+), 19 deletions(-)

New commits:
commit 0123d55d358731119c57d3a7e4269c30691fe830
Author: Jeroen van Meeuwen (Kolab Systems) <vanmeeuwen at kolabsys.com>
Date:   Sun Apr 8 13:49:20 2012 +0100

    Correct macro used for the sysvinit rc.d directory

diff --git a/pykolab.spec.in b/pykolab.spec.in
index 3752bac..000af5c 100644
--- a/pykolab.spec.in
+++ b/pykolab.spec.in
@@ -120,14 +120,14 @@ rm -rf %{buildroot}
 make install DESTDIR=%{buildroot}
 
 mkdir -p \
-    %{buildroot}/%{_initddir} \
+    %{buildroot}/%{_initrddir} \
     %{buildroot}/%{_sysconfdir}/sysconfig
 
 %{__install} -p -m 644 saslauthd/kolab-saslauthd.sysconfig %{buildroot}/%{_sysconfdir}/sysconfig/kolab-saslauthd
-%{__install} -p -m 755 saslauthd/kolab-saslauthd.sysvinit %{buildroot}/%{_initddir}/kolab-saslauthd
+%{__install} -p -m 755 saslauthd/kolab-saslauthd.sysvinit %{buildroot}/%{_initrddir}/kolab-saslauthd
 
 %{__install} -p -m 644 kolabd/kolabd.sysconfig %{buildroot}/%{_sysconfdir}/sysconfig/kolabd
-%{__install} -p -m 755 kolabd/kolabd.sysvinit %{buildroot}/%{_initddir}/kolabd
+%{__install} -p -m 755 kolabd/kolabd.sysvinit %{buildroot}/%{_initrddir}/kolabd
 
 %find_lang pykolab
 
@@ -252,7 +252,7 @@ rm -rf %{buildroot}
 %files -n kolab-saslauthd
 %defattr(-,root,root,-)
 %doc AUTHORS ChangeLog COPYING
-%{_initddir}/kolab-saslauthd
+%{_initrddir}/kolab-saslauthd
 %config(noreplace) %{_sysconfdir}/sysconfig/kolab-saslauthd
 %{_sbindir}/kolab-saslauthd
 %{python_sitelib}/saslauthd/
@@ -262,7 +262,7 @@ rm -rf %{buildroot}
 %files -n kolab-server
 %defattr(-,root,root,-)
 %doc AUTHORS ChangeLog COPYING
-%{_initddir}/kolabd
+%{_initrddir}/kolabd
 %config(noreplace) %{_sysconfdir}/sysconfig/kolabd
 %{_sbindir}/kolabd
 %{python_sitelib}/kolabd/


commit 2992ee8ba598d24b54d9d7eabaff603d67132470
Author: Jeroen van Meeuwen (Kolab Systems) <vanmeeuwen at kolabsys.com>
Date:   Sun Apr 8 13:41:36 2012 +0100

    Bump pre-release

diff --git a/configure.ac b/configure.ac
index 1b4a92b..8ecb735 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,5 +1,5 @@
 AC_INIT([pykolab], 0.3)
-AC_SUBST([RELEASE], 0.17)
+AC_SUBST([RELEASE], 0.18)
 
 AC_CONFIG_SRCDIR(pykolab/constants.py.in)
 


commit 4b7299189dbbd1e4825c67b64a11301497a2fa08
Author: Jeroen van Meeuwen (Kolab Systems) <vanmeeuwen at kolabsys.com>
Date:   Sun Apr 8 13:40:45 2012 +0100

    Insert TODO

diff --git a/kolabd/__init__.py b/kolabd/__init__.py
index b53c7c2..8d25b91 100644
--- a/kolabd/__init__.py
+++ b/kolabd/__init__.py
@@ -149,6 +149,8 @@ class KolabDaemon(object):
                         )
 
                     domain_auth[primary_domain] = Auth()
+                    # TODO: Consider threading for domain name space specific
+                    # Authn/Authz operations.
                     pid = os.fork()
                     if pid == 0:
                         domain_auth[primary_domain].connect(primary_domain)


commit 4090928dcf5aa57933b7b265c661f809eae83671
Author: Jeroen van Meeuwen (Kolab Systems) <vanmeeuwen at kolabsys.com>
Date:   Sun Apr 8 13:39:44 2012 +0100

    Connect to the new server using the template for the original uri

diff --git a/pykolab/imap/cyrus.py b/pykolab/imap/cyrus.py
index 3df716a..7872c6e 100644
--- a/pykolab/imap/cyrus.py
+++ b/pykolab/imap/cyrus.py
@@ -166,7 +166,7 @@ class Cyrus(cyruslib.CYRUS):
         """
         server = self.find_mailfolder_server(mailfolder)
         #print "server:", server
-        imap.connect('imap://%s:143' % (server))
+        imap.connect(self.uri.replace(self.server,server))
 
         log.debug(_("Setting quota for INBOX folder %s to %s") % (mailfolder,quota), level=8)
         try:
@@ -179,7 +179,7 @@ class Cyrus(cyruslib.CYRUS):
             Login to the actual backend server, then rename.
         """
         server = self.find_mailfolder_server(from_mailfolder)
-        imap.connect('imap://%s:143' % (server))
+        imap.connect(self.uri.replace(self.server,server))
 
         log.debug(_("Moving INBOX folder %s to %s") % (from_mailfolder,to_mailfolder), level=8)
         imap.rename(from_mailfolder, to_mailfolder, partition)
@@ -192,7 +192,7 @@ class Cyrus(cyruslib.CYRUS):
             Login to the actual backend server, then set annotation.
         """
         server = self.find_mailfolder_server(mailfolder)
-        imap.connect('imap://%s:143' % (server))
+        imap.connect(self.uri.replace(self.server,server))
 
         log.debug(_("Setting annotation %s on folder %s") % (annotation,mailfolder), level=8)
 
@@ -201,7 +201,7 @@ class Cyrus(cyruslib.CYRUS):
         imap.setannotation(mailfolder, annotation, value)
 
     def _xfer(self, mailfolder, current_server, new_server):
-        imap.connect('imap://%s:143' % (current_server))
+        imap.connect(self.uri.replace(self.server,server))
         log.debug(_("Transferring folder %s from %s to %s") % (mailfolder, current_server, new_server), level=8)
         imap.xfer(mailfolder, new_server)
 


commit 720c111b46bc4c558e93d752cf6152a588536d8f
Author: Jeroen van Meeuwen (Kolab Systems) <vanmeeuwen at kolabsys.com>
Date:   Sun Apr 8 13:39:32 2012 +0100

    Use the configured quota attribute

diff --git a/pykolab/imap/__init__.py b/pykolab/imap/__init__.py
index 0c77a54..ee7e722 100644
--- a/pykolab/imap/__init__.py
+++ b/pykolab/imap/__init__.py
@@ -385,7 +385,7 @@ class IMAP(object):
                     elif type(user[_inbox_folder_attr]) == str:
                         folder = "user/%s" % user[_inbox_folder_attr]
             elif type(user) == str:
-                quota = auth.get_user_attribute(user, 'quota')
+                quota = auth.get_user_attribute(user, _quota_attr)
                 folder = "user/%s" % (user)
 
             folder = folder.lower()


commit 07ef012ce1660979b53b8b383c19444f164bf50b
Author: Jeroen van Meeuwen (Kolab Systems) <vanmeeuwen at kolabsys.com>
Date:   Sun Apr 8 13:34:11 2012 +0100

    Correct adding back in an attribute

diff --git a/pykolab/auth/ldap/__init__.py b/pykolab/auth/ldap/__init__.py
index ae06a5f..2213f39 100644
--- a/pykolab/auth/ldap/__init__.py
+++ b/pykolab/auth/ldap/__init__.py
@@ -854,6 +854,9 @@ class LDAP(object):
 
         attribute = attribute.lower()
 
+        if not user.has_key(attribute):
+            user[attribute] = self._get_user_attribute(user, attribute)
+
         mode = None
 
         # TODO: This should be a schema check!
@@ -875,18 +878,17 @@ class LDAP(object):
                         user['objectclass']
                     )
 
-            if not user.has_key(attribute):
-                mode = ldap.MOD_ADD
-
-        if mode == None:
+        if user.has_key(attribute) and not user[attribute] == None:
             mode = ldap.MOD_REPLACE
+        else:
+            mode = ldap.MOD_ADD
 
         try:
-            self.ldap.modify(user['dn'], [(mode, attribute, value)])
-        except:
+            self.ldap.modify(user['dn'], [(mode, attribute, '%s' % (value))])
+        except ldap.LDAPError, e:
             log.warning(
                     _("LDAP modification of attribute %s for %s to value " + \
-                    "%s failed") % (attribute,user_dn,value)
+                    "%s failed: %r") % (attribute,user_dn,value,e.message['info'])
                 )
 
     def _list_domains(self):


commit 1e8c12a01a6be9a0b4b48ebbfb13048a6d11f3bd
Author: Jeroen van Meeuwen (Kolab Systems) <vanmeeuwen at kolabsys.com>
Date:   Sun Apr 8 13:10:51 2012 +0100

    Do not reconnect to get an annotation

diff --git a/pykolab/imap/cyrus.py b/pykolab/imap/cyrus.py
index 1515222..3df716a 100644
--- a/pykolab/imap/cyrus.py
+++ b/pykolab/imap/cyrus.py
@@ -185,7 +185,6 @@ class Cyrus(cyruslib.CYRUS):
         imap.rename(from_mailfolder, to_mailfolder, partition)
 
     def _getannotation(self, *args, **kw):
-        imap.connect()
         return imap.getannotation(*args, **kw)
 
     def _setannotation(self, mailfolder, annotation, value):





More information about the commits mailing list