Projects
Kolab:3.4
pykolab
Log In
Username
Password
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
Expand all
Collapse all
Changes of Revision 21
View file
pykolab.spec
Changed
@@ -23,7 +23,7 @@ Summary: Kolab Groupware Solution Name: pykolab -Version: 0.6.6 +Version: 0.6.8 Release: 1%{?dist} License: GPLv3+ Group: Applications/System
View file
pykolab-0.6.5-2230-correct-fatal-escape-mistake.patch
Deleted
@@ -1,21 +0,0 @@ -From 5f76c88df172452a1947819b1a1ad872543649b6 Mon Sep 17 00:00:00 2001 -From: Jeroen van Meeuwen (Kolab Systems) <vanmeeuwen@kolabsys.com> -Date: Sat, 24 Aug 2013 16:45:31 +0000 -Subject: Escape the $ in $_SERVER with a \ - ---- -diff --git a/share/templates/roundcubemail/kolab_files.inc.php.tpl b/share/templates/roundcubemail/kolab_files.inc.php.tpl -index effa1d9..1c5fced 100644 ---- a/share/templates/roundcubemail/kolab_files.inc.php.tpl -+++ b/share/templates/roundcubemail/kolab_files.inc.php.tpl -@@ -1,7 +1,7 @@ - <?php - - // URL of kolab-chwala installation --\$config['kolab_files_url'] = 'http://' . $_SERVER['HTTP_HOST'] . '/chwala/'; -+\$config['kolab_files_url'] = 'http://' . \$_SERVER['HTTP_HOST'] . '/chwala/'; - - // List of files list columns. Available are: name, size, mtime, type - \$config['kolab_files_list_cols'] = array('name', 'mtime', 'size'); --- -cgit v0.8.2.1
View file
debian.changelog
Changed
@@ -1,3 +1,9 @@ +pykolab (0.6.8-0~kolab1) unstable; urgency=low + + * Imported Upstream version 0.6.8 + + -- Jeroen van Meeuwen (Kolab Systems) <vanmeeuwen@kolabsys.com> Wed, 16 Oct 2013 12:10:43 +0100 + pykolab (0.6.6-1) unstable; urgency=low * Imported Upstream version 0.6.6
View file
pykolab-0.6.6.tar.gz/bin/kolab_smtp_access_policy.py -> pykolab-0.6.8.tar.gz/bin/kolab_smtp_access_policy.py
Changed
@@ -799,7 +799,7 @@ self.auth = Auth(sasl_domain) if verify_domain(sasl_domain): - if self.auth.domains.has_key(sasl_domain): + if not self.auth.domains == None and self.auth.domains.has_key(sasl_domain): log.debug( _("Using authentication domain %s instead of %s") % ( self.auth.domains[sasl_domain],
View file
pykolab-0.6.6.tar.gz/configure.ac -> pykolab-0.6.8.tar.gz/configure.ac
Changed
@@ -1,4 +1,4 @@ -AC_INIT([pykolab], 0.6.6) +AC_INIT([pykolab], 0.6.8) AC_SUBST([RELEASE], 1) AC_CONFIG_SRCDIR(pykolab/constants.py.in)
View file
pykolab-0.6.6.tar.gz/kolabd/__init__.py -> pykolab-0.6.8.tar.gz/kolabd/__init__.py
Changed
@@ -232,7 +232,7 @@ # domains now is a list of tuples, we want the primary_domains primary_domains = [] - for primary_domain, secondary_domains in domains: + for primary_domain in list(set(domains.values())): primary_domains.append(primary_domain) # Now we can check if any changes happened. @@ -268,6 +268,10 @@ domain_auth[domain] = Process(domain) domain_auth[domain].start() + for domain in removed_domains: + domain_auth[domain].terminate() + del domain_auth[domain] + def reload_config(self, *args, **kw): pass
View file
pykolab-0.6.6.tar.gz/pykolab/auth/ldap/__init__.py -> pykolab-0.6.8.tar.gz/pykolab/auth/ldap/__init__.py
Changed
@@ -169,7 +169,11 @@ else: base_dn = config_base_dn - auth_cache.set_entry(self.domain, base_dn) + try: + auth_cache.set_entry(self.domain, base_dn) + except Exception, errmsg: + log.error(_("Authentication cache failed: %r") % (errmsg)) + pass user_filter = self.config_get_raw('user_filter') % ({'base_dn':base_dn}) @@ -216,7 +220,11 @@ # to True!! self.ldap.simple_bind_s(entry_dn, login[1]) retval = True - auth_cache.set_entry(_filter, entry_dn) + try: + auth_cache.set_entry(_filter, entry_dn) + except Exception, errmsg: + log.error(_("Authentication cache failed: %r") % (errmsg)) + pass except: try: log.debug( @@ -528,7 +536,10 @@ """ List alias domain name spaces for the current domain name space. """ - return [s for s, p in self.secondary_domains.iteritems() if p == self.domain] + if not self.domains == None: + return [s for s in self.domains.keys() if not s in self.domains.values()] + else: + return [] def recipient_policy(self, entry): """ @@ -1300,6 +1311,22 @@ server = self.imap.user_mailbox_server(folder) + log.debug( + _("Entry %s attribute value: %r") % ( + mailserver_attribute, + entry[mailserver_attribute] + ), + level=8 + ) + + log.debug( + _("imap.user_mailbox_server(%r) result: %r") % ( + folder, + server + ), + level=8 + ) + if not entry[mailserver_attribute] == server: self.set_entry_attribute(entry, mailserver_attribute, server)
View file
pykolab-0.6.6.tar.gz/pykolab/auth/ldap/auth_cache.py -> pykolab-0.6.8.tar.gz/pykolab/auth/ldap/auth_cache.py
Changed
@@ -71,7 +71,7 @@ 'entries', metadata, Column('id', Integer, primary_key=True), Column('domain', String(128), index=True, nullable=True), - Column('key', String(128), index=True, nullable=False), + Column('key', String(512), index=True, nullable=False), Column('value', String(128), nullable=False), Column('last_change', DateTime, nullable=False, default=datetime.datetime.now()) ) @@ -114,9 +114,8 @@ db.commit() -#def purge_entries(): - #db = init_db() - #db.query(Entry).filter(Entry.last_change <= datetime.datetime.now()).delete() +def purge_entries(db): + db.query(Entry).filter(Entry.last_change <= (datetime.datetime.now() - datetime.timedelta(1))).delete() def init_db(): """ @@ -127,12 +126,16 @@ if not db == None: return db - db_uri = 'sqlite:///%s/auth_cache.db' % (KOLAB_LIB_PATH) + db_uri = conf.get('ldap', 'auth_cache_uri') + if db_uri == None: + db_uri = 'sqlite:///%s/auth_cache.db' % (KOLAB_LIB_PATH) + echo = conf.debuglevel > 8 engine = create_engine(db_uri, echo=echo) metadata.create_all(engine) Session = sessionmaker(bind=engine) db = Session() + purge_entries(db) return db
View file
pykolab-0.6.6.tar.gz/pykolab/cli/cmd_delete_mailbox.py -> pykolab-0.6.8.tar.gz/pykolab/cli/cmd_delete_mailbox.py
Changed
@@ -52,6 +52,10 @@ delete_folders = imap.list_folders(delete_folder) + if len(delete_folders) == 0: + print >> sys.stderr, _("No such folder(s)") + sys.exit(1) + for delete_folder in delete_folders: imap.delete_mailfolder(delete_folder)
View file
pykolab-0.6.6.tar.gz/pykolab/cli/cmd_list_deleted_mailboxes.py -> pykolab-0.6.8.tar.gz/pykolab/cli/cmd_list_deleted_mailboxes.py
Changed
@@ -75,7 +75,7 @@ mbox_parts = imap.parse_mailfolder(folder) if not conf.raw: - print "%s (Deleted at %s)" % (imap_utf7.decode(folder), datetime.datetime.fromtimestamp(int(mbox_parts['hex_timestamp'], 16))) + print "%s (Deleted at %s)" % (imap_utf7.decode(folder).encode('utf-8'), datetime.datetime.fromtimestamp(int(mbox_parts['hex_timestamp'], 16))) else: print "%s (Deleted at %s)" % (folder, datetime.datetime.fromtimestamp(int(mbox_parts['hex_timestamp'], 16)))
View file
pykolab-0.6.6.tar.gz/pykolab/cli/cmd_list_mailbox_metadata.py -> pykolab-0.6.8.tar.gz/pykolab/cli/cmd_list_mailbox_metadata.py
Changed
@@ -83,7 +83,7 @@ metadata = [] folders = imap.list_folders(folder) for folder in folders: - print "Folder", folder + print "Folder", folder.encode('utf-8') metadata = imap.get_metadata(folder)
View file
pykolab-0.6.6.tar.gz/pykolab/cli/cmd_list_mailboxes.py -> pykolab-0.6.8.tar.gz/pykolab/cli/cmd_list_mailboxes.py
Changed
@@ -89,6 +89,6 @@ for folder in folders: if not conf.raw: - print imap_utf7.decode(folder) + print imap_utf7.decode(folder).encode('utf-8') else: print folder
View file
pykolab-0.6.6.tar.gz/pykolab/cli/cmd_set_mailbox_metadata.py -> pykolab-0.6.8.tar.gz/pykolab/cli/cmd_set_mailbox_metadata.py
Changed
@@ -25,6 +25,7 @@ from pykolab.imap import IMAP from pykolab.translate import _ +from pykolab import imap_utf7 from pykolab import utils log = pykolab.getLogger('pykolab.cli') @@ -93,6 +94,6 @@ print >> sys.stderr, _("No such folder %r") % (folder) else: - folders = imap.lm(folder) + folders = imap.lm(imap_utf7.encode(folder)) for folder in folders: - imap.set_metadata(folder, metadata_path, metadata_value) + imap.set_metadata(imap_utf7.decode(folder), metadata_path, metadata_value)
View file
pykolab-0.6.6.tar.gz/pykolab/cli/cmd_sync.py -> pykolab-0.6.8.tar.gz/pykolab/cli/cmd_sync.py
Changed
@@ -47,8 +47,9 @@ all_folders = [] - for primary_domain,secondary_domains in domains: + for primary_domain in list(set(domains.values())): log.debug(_("Running for domain %s") % (primary_domain), level=8) + auth = Auth(primary_domain) auth.connect(primary_domain) start_time = time.time() auth.synchronize(mode='_paged_search')
View file
pykolab-0.6.6.tar.gz/pykolab/cli/cmd_sync_mailhost_attrs.py -> pykolab-0.6.8.tar.gz/pykolab/cli/cmd_sync_mailhost_attrs.py
Changed
@@ -73,7 +73,49 @@ domains = auth.list_domains() - for primary,secondaries in domains: + folders = imap.lm() + + imap_domains_not_domains = [] + + for folder in folders: + if len(folder.split('@')) > 1 and not folder.startswith('DELETED'): + _folder_domain = folder.split('@')[-1] + if not _folder_domain in list(set(domains.keys() + domains.values())): + imap_domains_not_domains.append(folder.split('@')[-1]) + + imap_domains_not_domains = list(set(imap_domains_not_domains)) + + log.debug(_("Domains in IMAP not in LDAP: %r") % (imap_domains_not_domains), level=8) + + if len(imap_domains_not_domains) > 0: + for domain in imap_domains_not_domains: + folders = [] + + folders.extend(imap.lm('shared/%%@%s' % (domain))) + folders.extend(imap.lm('user/%%@%s' % (domain))) + + for folder in folders: + if conf.delete: + if conf.dry_run: + if not folder.split('/')[0] == 'shared': + log.warning(_("No recipients for '%s' (would have deleted the mailbox if not for --dry-run)!") % ('/'.join(folder.split('/')[1:]))) + else: + continue + else: + if not '/'.join(folder.split('/')[0]) == 'shared': + log.info(_("Deleting mailbox '%s' because it has no recipients") % (folder)) + try: + imap.dm(folder) + except Exception, errmsg: + log.error(_("An error occurred removing mailbox %r: %r") % (folder, errmsg)) + else: + log.info(_("Not automatically deleting shared folder '%s'") % (folder)) + else: + log.warning(_("No recipients for '%s' (use --delete to delete)!") % ('/'.join(folder.split('/')[1:]))) + + for primary in list(set(domains.values())): + secondaries = [x for x in domains.keys() if domains[x] == primary] + folders = [] folders.extend(imap.lm('shared/%%@%s' % (primary))) @@ -103,7 +145,10 @@ else: if not '/'.join(folder.split('/')[0]) == 'shared': log.info(_("Deleting mailbox '%s' because it has no recipients") % (folder)) - imap.dm(folder) + try: + imap.dm(folder) + except Exception, errmsg: + log.error(_("An error occurred removing mailbox %r: %r") % (folder, errmsg)) else: log.info(_("Not automatically deleting shared folder '%s'") % (folder)) else:
View file
pykolab-0.6.6.tar.gz/pykolab/imap/cyrus.py -> pykolab-0.6.8.tar.gz/pykolab/imap/cyrus.py
Changed
@@ -166,7 +166,20 @@ log.debug(_("Checking actual backend server for folder %s through annotations") % (mailfolder), level=8) if self.mbox.has_key(mailfolder): - return self.mbox[mailfolder] + log.debug( + _( + "Possibly reproducing the find " + \ + "mailfolder server answer from " + \ + "previously detected and stored " + \ + "annotation value: %r" + ) % ( + self.mbox[mailfolder] + ), + level=8 + ) + + if not self.mbox[mailfolder] == self.server: + return self.mbox[mailfolder] max_tries = 20 num_try = 0 @@ -363,7 +376,10 @@ if not mbox['domain'] == None: verify_folder_search = "%s@%s" % (verify_folder_search, mbox['domain']) - folders = self.lm(verify_folder_search) + if ' ' in verify_folder_search: + folders = self.lm('"%s"' % verify_folder_search) + else: + folders = self.lm(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
View file
pykolab-0.6.6.tar.gz/pykolab/setup/setup_ldap.py -> pykolab-0.6.8.tar.gz/pykolab/setup/setup_ldap.py
Changed
@@ -365,7 +365,7 @@ fp.close() fp = open('/var/log/kolab/setup.out.log', 'w') - fp.write(stderrdata) + fp.write(stdoutdata) fp.close() log.debug(_("Setup DS stdout:"), level=8)
View file
pykolab-0.6.6.tar.gz/share/templates/header_checks.submission -> pykolab-0.6.8.tar.gz/share/templates/header_checks.submission
Changed
@@ -2,4 +2,3 @@ /^Received:.*127\.0\.0\.1/ IGNORE /^User-Agent:/ IGNORE /^X-Mailer:/ IGNORE -/^Mime-Version:/ IGNORE
View file
pykolab-0.6.6.tar.gz/share/templates/roundcubemail/config.inc.php.tpl -> pykolab-0.6.8.tar.gz/share/templates/roundcubemail/config.inc.php.tpl
Changed
@@ -53,6 +53,7 @@ 'kolab_addressbook', 'kolab_auth', 'kolab_config', + 'kolab_files', 'kolab_folders', 'libkolab', 'libcalendaring',
View file
pykolab-0.6.6.tar.gz/ucs/listener.py -> pykolab-0.6.8.tar.gz/ucs/listener.py
Changed
@@ -25,7 +25,7 @@ import logging import os import sys -import univention_baseconfig +from univention.config_registry import ConfigRegistry import univention.debug as ulog sys.path = [ @@ -147,13 +147,17 @@ else: log.info("Entry deletion notification for %r does not have a mail server attribute specified." % (dn)) - auth._auth._synchronize_callback( - change_type = 'delete', - previous_dn = None, - change_number = None, - dn = dn, - entry = old - ) + cfg = ConfigRegistry() + cfg.load() + + if cfg.is_true('mail/cyrus/mailbox/delete', True): + auth._auth._synchronize_callback( + change_type = 'delete', + previous_dn = None, + change_number = None, + dn = dn, + entry = old + ) elif isinstance(new, dict) and len(new.keys()) > 0: # Old is not a dict (or empty), so the entry is just created
View file
pykolab.dsc
Changed
@@ -2,7 +2,7 @@ Source: pykolab Binary: pykolab, kolab-cli, kolab-conf, kolab-saslauthd, kolab-server, kolab-telemetry, kolab-xml, wallace Architecture: all -Version: 0.6.6-1 +Version: 0.6.8-0~kolab1 Maintainer: Jeroen van Meeuwen (Kolab Systems) <vanmeeuwen@kolabsys.com> Uploaders: Paul Klos <kolab@klos2day.nl> Homepage: http://www.kolab.org @@ -19,5 +19,5 @@ pykolab deb python optional wallace deb python optional Files: - 00000000000000000000000000000000 0 pykolab-0.6.6.tar.gz + 00000000000000000000000000000000 0 pykolab-0.6.8.tar.gz 00000000000000000000000000000000 0 debian.tar.gz
Locations
Projects
Search
Status Monitor
Help
Open Build Service
OBS Manuals
API Documentation
OBS Portal
Reporting a Bug
Contact
Mailing List
Forums
Chat (IRC)
Twitter
Open Build Service (OBS)
is an
openSUSE project
.