diff options
| author | Aditya | 2016-05-31 10:51:24 -0700 |
|---|---|---|
| committer | Aditya | 2016-05-31 10:51:24 -0700 |
| commit | 964699645d2603bef0a83d92d08cc4449a00499a (patch) | |
| tree | c1d1ccf1eb29a56bc78a4e7cffe69f2605db81bc | |
| parent | 6e6d041cf0c069ba25ce174e6dc431595e0a7222 (diff) | |
| download | mailman-964699645d2603bef0a83d92d08cc4449a00499a.tar.gz mailman-964699645d2603bef0a83d92d08cc4449a00499a.tar.zst mailman-964699645d2603bef0a83d92d08cc4449a00499a.zip | |
Remove nonmember subscriptions if susbcribed as member.
On subscribing an address as a member, we check if the related user
is subscribed as a nonmember through any address. If yes, we remove
the nonmember subscription.
| -rw-r--r-- | src/mailman/app/membership.py | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/mailman/app/membership.py b/src/mailman/app/membership.py index 8ded39388..6e6ceb942 100644 --- a/src/mailman/app/membership.py +++ b/src/mailman/app/membership.py @@ -90,6 +90,12 @@ def add_member(mlist, record, role=MemberRole.member): error.fqdn_listname, record.email, error.role) member.preferences.preferred_language = record.language member.preferences.delivery_mode = record.delivery_mode + # Check and remove nonmember subscriptions of the user to this list + # if any. + for address in user.addresses: + nonmember = mlist.nonmembers.get_member(address.email) + if nonmember is not None: + nonmember.unsubscribe() return member |
