pykolab/setup share/templates
Jeroen van Meeuwen
vanmeeuwen at kolabsys.com
Sun Apr 14 13:17:39 CEST 2013
pykolab/setup/setup_mta.py | 37 ++++++++++++++++++++++++++++++++++---
share/templates/imapd.conf.tpl | 1 +
2 files changed, 35 insertions(+), 3 deletions(-)
New commits:
commit 207b26fe0ccde43572ab53b0f139b90dab759d5a
Author: Jeroen van Meeuwen (Kolab Systems) <vanmeeuwen at kolabsys.com>
Date: Sun Apr 14 13:17:21 2013 +0200
Enable delivery to shared folders
diff --git a/pykolab/setup/setup_mta.py b/pykolab/setup/setup_mta.py
index 35df4fb..d50217f 100644
--- a/pykolab/setup/setup_mta.py
+++ b/pykolab/setup/setup_mta.py
@@ -52,6 +52,8 @@ def execute(*args, **kw):
resource_filter = conf.get('ldap', 'resource_filter')
+ sharedfolder_filter = conf.get('ldap', 'sharedfolder_filter')
+
server_host = utils.parse_ldap_uri(conf.get('ldap', 'ldap_uri'))[1]
files = {
@@ -67,7 +69,7 @@ domain = ldap:/etc/postfix/ldap/mydestination.cf
bind_dn = %(service_bind_dn)s
bind_pw = %(service_bind_pw)s
-query_filter = (&(|(mail=%%s)(alias=%%s))(|%(kolab_user_filter)s%(kolab_group_filter)s%(resource_filter)s))
+query_filter = (&(|(mail=%%s)(alias=%%s))(|%(kolab_user_filter)s%(kolab_group_filter)s%(resource_filter)s%(sharedfolder_filter)s))
result_attribute = mail
""" % {
"base_dn": conf.get('ldap', 'base_dn'),
@@ -77,6 +79,7 @@ result_attribute = mail
"kolab_user_filter": user_filter,
"kolab_group_filter": group_filter,
"resource_filter": resource_filter,
+ "sharedfolder_filter": sharedfolder_filter,
},
"/etc/postfix/ldap/mydestination.cf": """
server_host = %(server_host)s
@@ -189,6 +192,27 @@ result_attribute = mail
"service_bind_dn": conf.get('ldap', 'service_bind_dn'),
"service_bind_pw": conf.get('ldap', 'service_bind_pw'),
},
+ "/etc/postfix/ldap/virtual_alias_maps_sharedfolders.cf": """
+server_host = %(server_host)s
+server_port = 389
+version = 3
+search_base = %(base_dn)s
+scope = sub
+
+domain = ldap:/etc/postfix/ldap/mydestination.cf
+
+bind_dn = %(service_bind_dn)s
+bind_pw = %(service_bind_pw)s
+
+query_filter = (&(|(mail=%%s)(alias=%%s))(objectclass=kolabsharedfolder))
+result_attribute = kolabtargetfolder
+result_format = shared+%%s
+""" % {
+ "base_dn": conf.get('ldap', 'base_dn'),
+ "server_host": server_host,
+ "service_bind_dn": conf.get('ldap', 'service_bind_dn'),
+ "service_bind_pw": conf.get('ldap', 'service_bind_pw'),
+ },
}
if not os.path.isdir('/etc/postfix/ldap'):
@@ -199,12 +223,19 @@ result_attribute = mail
fp.write(files[filename])
fp.close()
+ fp = open('/etc/postfix/transport', 'a')
+ fp.write("\n# Shared Folder Delivery for %(domain)s:\nshared@%(domain)s\t\tlmtp:unix:/var/lib/imap/socket/lmtp\n" % {'domain': conf.get('kolab', 'primary_domain')})
+ fp.close()
+
+ subprocess.call(["postmap", "/etc/postfix/transport"])
+
postfix_main_settings = {
"inet_interfaces": "all",
+ "recipient_delimiter": "+",
"local_recipient_maps": "ldap:/etc/postfix/ldap/local_recipient_maps.cf",
"mydestination": "ldap:/etc/postfix/ldap/mydestination.cf",
- "transport_maps": "ldap:/etc/postfix/ldap/transport_maps.cf",
- "virtual_alias_maps": "$alias_maps, ldap:/etc/postfix/ldap/virtual_alias_maps.cf, ldap:/etc/postfix/ldap/mailenabled_distgroups.cf, ldap:/etc/postfix/ldap/mailenabled_dynamic_distgroups.cf",
+ "transport_maps": "ldap:/etc/postfix/ldap/transport_maps.cf, hash:/etc/postfix/transport",
+ "virtual_alias_maps": "$alias_maps, ldap:/etc/postfix/ldap/virtual_alias_maps.cf, ldap:/etc/postfix/ldap/virtual_alias_maps_sharedfolders.cf, ldap:/etc/postfix/ldap/mailenabled_distgroups.cf, ldap:/etc/postfix/ldap/mailenabled_dynamic_distgroups.cf",
"smtpd_tls_auth_only": "yes",
"smtpd_sasl_auth_enable": "yes",
"smtpd_sender_login_maps": "$relay_recipient_maps",
diff --git a/share/templates/imapd.conf.tpl b/share/templates/imapd.conf.tpl
index 8d4e30b..4da3341 100644
--- a/share/templates/imapd.conf.tpl
+++ b/share/templates/imapd.conf.tpl
@@ -48,3 +48,4 @@ deletedprefix: DELETED
delete_mode: delayed
expunge_mode: delayed
flushseenstate: 1
+postuser: shared
More information about the commits
mailing list