diff options
| author | bwarsaw | 2002-07-11 16:18:39 +0000 |
|---|---|---|
| committer | bwarsaw | 2002-07-11 16:18:39 +0000 |
| commit | a15564007473d08305892b71eb3b49f5aed2ed84 (patch) | |
| tree | 04724269b56130b165658ccd3a593be41b5f863d | |
| parent | 3e164316f06ef7a2570ad2fab13ad362443ca6d2 (diff) | |
| download | mailman-a15564007473d08305892b71eb3b49f5aed2ed84.tar.gz mailman-a15564007473d08305892b71eb3b49f5aed2ed84.tar.zst mailman-a15564007473d08305892b71eb3b49f5aed2ed84.zip | |
ApprovedChangeMemberAddress(): Watch out for situations where the new
address is already a member and don't make the address change in that
case. However, if the old address is still a member, we'll just
delete it.
| -rw-r--r-- | Mailman/MailList.py | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/Mailman/MailList.py b/Mailman/MailList.py index 8d0e11c51..0e15511e5 100644 --- a/Mailman/MailList.py +++ b/Mailman/MailList.py @@ -996,7 +996,12 @@ class MailList(HTMLFormatter, Deliverer, ListAdmin, def ApprovedChangeMemberAddress(self, oldaddr, newaddr, globally): # Change the membership for the current list first. We don't lock and # save ourself since we assume that the list is already locked. - self.changeMemberAddress(oldaddr, newaddr) + if self.isMember(newaddr): + # Just delete the old address + if self.isMember(oldaddr): + self.ApprovedDeleteMember(oldaddr, admin_notif=1, userack=1) + else: + self.changeMemberAddress(oldaddr, newaddr) # If globally is true, then we also include every list for which # oldaddr is a member. if not globally: |
