diff options
author | Jeroen van Meeuwen (Kolab Systems) <vanmeeuwen@kolabsys.com> | 2012-06-05 12:28:22 +0200 |
---|---|---|
committer | Jeroen van Meeuwen (Kolab Systems) <vanmeeuwen@kolabsys.com> | 2012-06-05 12:28:32 +0200 |
commit | dc65e08a6acfdf239b8089153e2025d1c80a50ad (patch) | |
tree | e670eb9e9383f6f5633ee88a65775834523606a3 /bin | |
parent | f66e8f9a9d1a5f1a620f450c4c1f1c109d5747d7 (diff) | |
download | pykolab-dc65e08a6acfdf239b8089153e2025d1c80a50ad.tar.gz |
Use find_recipient() instead of find_user() to verify delegation. (#826)
Diffstat (limited to 'bin')
-rwxr-xr-x | bin/kolab_smtp_access_policy.py | 24 |
1 files changed, 17 insertions, 7 deletions
diff --git a/bin/kolab_smtp_access_policy.py b/bin/kolab_smtp_access_policy.py index 14aea56..7e226d4 100755 --- a/bin/kolab_smtp_access_policy.py +++ b/bin/kolab_smtp_access_policy.py @@ -516,13 +516,23 @@ class PolicyRequest(object): if self.sender == self.sasl_username: return - self.sender_user = { - 'dn': auth.find_user( - search_attrs, - self.sender, - domain=self.sender_domain - ) - } + sender_users = auth.find_recipient( + self.sender, + domain=self.sender_domain + ) + + if isinstance(sender_users, list): + if len(sender_users) > 1: + # More then one sender user with this recipient address. + # TODO: check each of the sender users found. + self.sender_user = { 'dn': sender_users[0] } + elif len(sender_users) == 1: + self.sender_user = { 'dn': sender_users } + else: + self.sender_user = { 'dn': False } + + elif isinstance(sender_users, basestring): + self.sender_user = { 'dn': sender_users } if not self.sender_user['dn']: cache_update( |