From 964699645d2603bef0a83d92d08cc4449a00499a Mon Sep 17 00:00:00 2001 From: Aditya Date: Tue, 31 May 2016 10:51:24 -0700 Subject: 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. --- src/mailman/app/membership.py | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'src') 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 -- cgit v1.2.3-70-g09d2