summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/mailman/app/membership.py6
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