diff options
| author | msapiro | 2006-03-03 00:20:33 +0000 |
|---|---|---|
| committer | msapiro | 2006-03-03 00:20:33 +0000 |
| commit | ed0ab53d70d4bf7a19c367d6ebe5a63ba2a8803b (patch) | |
| tree | 221d659505c18a5ef32eba32447c29d7bfa2b202 /Mailman/MailList.py | |
| parent | 16bc431001d4bf9bb4662f483907540ff0da6948 (diff) | |
| download | mailman-ed0ab53d70d4bf7a19c367d6ebe5a63ba2a8803b.tar.gz mailman-ed0ab53d70d4bf7a19c367d6ebe5a63ba2a8803b.tar.zst mailman-ed0ab53d70d4bf7a19c367d6ebe5a63ba2a8803b.zip | |
Diffstat (limited to 'Mailman/MailList.py')
| -rw-r--r-- | Mailman/MailList.py | 30 |
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 |
