|
37 |
import re |
37 |
import re |
38 |
import traceback |
38 |
import traceback |
39 |
import syslog |
39 |
import syslog |
|
|
40 |
|
41 |
from ldap.filter import filter_format |
40 |
from univention.config_registry import ConfigRegistry |
42 |
from univention.config_registry import ConfigRegistry |
41 |
|
43 |
|
42 |
usage = "help" |
44 |
usage = "help" |
Lines 79-85
def listfilter(attrib):
|
Link Here
|
---|
|
79 |
# try the ldap stuff, if that fails send email anyway |
81 |
# try the ldap stuff, if that fails send email anyway |
80 |
# get recipient restriction |
82 |
# get recipient restriction |
81 |
ldap_attr = ["univentionAllowedEmailGroups", "univentionAllowedEmailUsers"] |
83 |
ldap_attr = ["univentionAllowedEmailGroups", "univentionAllowedEmailUsers"] |
82 |
ldap_filter = '(&(mailPrimaryAddress=%s)(|(objectclass=univentionMailList)(objectclass=posixGroup)))' % recipient |
84 |
ldap_filter = filter_format('(&(mailPrimaryAddress=%s)(|(objectclass=univentionMailList)(objectclass=posixGroup)))', [recipient]) |
83 |
result = ldap.search(base=options.ldap_base, filter=ldap_filter, attr=ldap_attr) |
85 |
result = ldap.search(base=options.ldap_base, filter=ldap_filter, attr=ldap_attr) |
84 |
|
86 |
|
85 |
if result: |
87 |
if result: |
Lines 99-111
def listfilter(attrib):
|
Link Here
|
---|
|
99 |
|
101 |
|
100 |
# get dn and groups of sender |
102 |
# get dn and groups of sender |
101 |
if check_sasl_username: |
103 |
if check_sasl_username: |
102 |
ldap_filter = '(&(uid=%s)(objectclass=posixAccount))' % sender |
104 |
ldap_filter = filter_format('(&(uid=%s)(objectclass=posixAccount))', [sender]) |
103 |
else: |
105 |
else: |
104 |
ldap_filter = '(&(|(mailPrimaryAddress=%s)(mailAlternativeAddress=%s)(mail=%s))(objectclass=posixAccount))' % (sender, sender, sender) |
106 |
ldap_filter = filter_format('(&(|(mailPrimaryAddress=%s)(mailAlternativeAddress=%s)(mail=%s))(objectclass=posixAccount))', (sender, sender, sender)) |
105 |
user_result = ldap.search(base=options.ldap_base, filter=ldap_filter, attr=["dn"]) |
107 |
user_result = ldap.search(base=options.ldap_base, filter=ldap_filter, attr=["dn"]) |
106 |
if user_result: |
108 |
if user_result: |
107 |
user_dn = user_result[0][0] |
109 |
user_dn = user_result[0][0] |
108 |
ldap_filter = '(uniqueMember=%s)' % user_dn |
110 |
ldap_filter = filter_format('(uniqueMember=%s)', [user_dn]) |
109 |
group_result = ldap.search(base=options.ldap_base, filter=ldap_filter, attr=["dn"]) |
111 |
group_result = ldap.search(base=options.ldap_base, filter=ldap_filter, attr=["dn"]) |
110 |
if group_result: |
112 |
if group_result: |
111 |
for i in group_result: |
113 |
for i in group_result: |
Lines 136-142
def listfilter(attrib):
|
Link Here
|
---|
|
136 |
return "DUNNO no restrictions" |
138 |
return "DUNNO no restrictions" |
137 |
else: |
139 |
else: |
138 |
return "DUNNO no group found for %s" % recipient |
140 |
return "DUNNO no group found for %s" % recipient |
139 |
except Exception: |
141 |
except Exception: # FIXME: never catch everything |
140 |
return "WARN Error with attrib={}, check_sasl_username={}, traceback={}".format( |
142 |
return "WARN Error with attrib={}, check_sasl_username={}, traceback={}".format( |
141 |
attrib, check_sasl_username, traceback.format_exc().replace("\n", " ")) |
143 |
attrib, check_sasl_username, traceback.format_exc().replace("\n", " ")) |
142 |
|
144 |
|