summaryrefslogtreecommitdiff
path: root/Mailman/MailList.py
diff options
context:
space:
mode:
authormsapiro2006-03-03 00:20:33 +0000
committermsapiro2006-03-03 00:20:33 +0000
commited0ab53d70d4bf7a19c367d6ebe5a63ba2a8803b (patch)
tree221d659505c18a5ef32eba32447c29d7bfa2b202 /Mailman/MailList.py
parent16bc431001d4bf9bb4662f483907540ff0da6948 (diff)
downloadmailman-ed0ab53d70d4bf7a19c367d6ebe5a63ba2a8803b.tar.gz
mailman-ed0ab53d70d4bf7a19c367d6ebe5a63ba2a8803b.tar.zst
mailman-ed0ab53d70d4bf7a19c367d6ebe5a63ba2a8803b.zip
Diffstat (limited to 'Mailman/MailList.py')
-rw-r--r--Mailman/MailList.py30
1 files changed, 30 insertions, 0 deletions
diff --git a/Mailman/MailList.py b/Mailman/MailList.py
index aa1da4b7c..daac29091 100644
--- a/Mailman/MailList.py
+++ b/Mailman/MailList.py
@@ -1125,6 +1125,7 @@ class MailList(HTMLFormatter, Deliverer, ListAdmin,
self.removeMember(oldaddr)
else:
self.changeMemberAddress(oldaddr, newaddr)
+ self.log_and_notify_admin(oldaddr, newaddr)
# If globally is true, then we also include every list for which
# oldaddr is a member.
if not globally:
@@ -1148,10 +1149,39 @@ class MailList(HTMLFormatter, Deliverer, ListAdmin,
mlist.removeMember(oldaddr)
else:
mlist.changeMemberAddress(oldaddr, newaddr)
+ self.log_and_notify_admin(oldaddr, newaddr)
mlist.Save()
finally:
mlist.Unlock()
+ def log_and_notify_admin(self, oldaddr, newaddr):
+ """Log member address change and notify admin if requested."""
+ syslog('subscribe', '%s: changed member address from %s to %s',
+ self.internal_name(), oldaddr, newaddr)
+ if self.admin_notify_mchanges:
+ lang = self.preferred_language
+ otrans = i18n.get_translation()
+ i18n.set_language(lang)
+ try:
+ realname = self.real_name
+ subject = _('%(realname)s address change notification')
+ finally:
+ i18n.set_translation(otrans)
+ name = self.getMemberName(newaddr)
+ if name is None:
+ name = ''
+ if isinstance(name, UnicodeType):
+ name = name.encode(Utils.GetCharSet(lang), 'replace')
+ text = Utils.maketext(
+ 'adminaddrchgack.txt',
+ {'name' : name,
+ 'oldaddr' : oldaddr,
+ 'newaddr' : newaddr,
+ 'listname': self.real_name,
+ }, mlist=self)
+ msg = Message.OwnerNotification(self, subject, text)
+ msg.send(self)
+
#
# Confirmation processing