summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormsapiro2007-03-20 23:13:26 +0000
committermsapiro2007-03-20 23:13:26 +0000
commitcf950f7430ecabc8d4ff370c4f9e6e01f7b44fd4 (patch)
tree7b4bd4fda22583c0d95e0f4b25d07aabc8204102
parent03db19fb63df5b4adf525361640743d90a7e10e1 (diff)
downloadmailman-cf950f7430ecabc8d4ff370c4f9e6e01f7b44fd4.tar.gz
mailman-cf950f7430ecabc8d4ff370c4f9e6e01f7b44fd4.tar.zst
mailman-cf950f7430ecabc8d4ff370c4f9e6e01f7b44fd4.zip
-rw-r--r--Mailman/OldStyleMemberships.py9
1 files changed, 8 insertions, 1 deletions
diff --git a/Mailman/OldStyleMemberships.py b/Mailman/OldStyleMemberships.py
index 3a69a2dfc..2a72b8928 100644
--- a/Mailman/OldStyleMemberships.py
+++ b/Mailman/OldStyleMemberships.py
@@ -213,7 +213,7 @@ class OldStyleMemberships(MemberAdaptor.MemberAdaptor):
value = 0
else:
value = member
- member = member.lower()
+ member = member.lower()
if digest:
self.__mlist.digest_members[member] = value
else:
@@ -255,6 +255,8 @@ class OldStyleMemberships(MemberAdaptor.MemberAdaptor):
password = self.__mlist.passwords.get(memberkey,
Utils.MakeRandomPassword())
lang = self.getMemberLanguage(memberkey)
+ delivery = self.__mlist.delivery_status.get(member.lower(),
+ (MemberAdaptor.ENABLED,0))
# First, possibly delete the old member
if not nodelete:
self.removeMember(memberkey)
@@ -264,6 +266,11 @@ class OldStyleMemberships(MemberAdaptor.MemberAdaptor):
# Set the entire options bitfield
if flags:
self.__mlist.user_options[newaddress.lower()] = flags
+ # If this is a straightforward address change, i.e. nodelete = 0,
+ # preserve the delivery status and time if BYUSER or BYADMIN
+ if delivery[0] in (MemberAdaptor.BYUSER, MemberAdaptor.BYADMIN)\
+ and not nodelete:
+ self.__mlist.delivery_status[newaddress.lower()] = delivery
def setMemberPassword(self, memberkey, password):
assert self.__mlist.Locked()