diff options
| author | bwarsaw | 2001-10-27 04:33:26 +0000 |
|---|---|---|
| committer | bwarsaw | 2001-10-27 04:33:26 +0000 |
| commit | bc167edf4e95a8361c6d5c7871a1965fcef1301e (patch) | |
| tree | 7ab2f34d92e57b19e99f181f320b331e8a2a674f | |
| parent | f92aa7fb4f4797a49907f2c038df68c2b299e942 (diff) | |
| download | mailman-bc167edf4e95a8361c6d5c7871a1965fcef1301e.tar.gz mailman-bc167edf4e95a8361c6d5c7871a1965fcef1301e.tar.zst mailman-bc167edf4e95a8361c6d5c7871a1965fcef1301e.zip | |
main(): Fixed use of obsolete call Utils.ParseAddrs() -- uses
email.Utils.getaddresses() instead. Found by Fil.
Also, converted to UserDesc interface for ApprovedAddMember(), and
added support for sucking the Real Name out of the sync file. Also
fixed some bugs in the output format strings.
| -rwxr-xr-x | bin/sync_members | 27 |
1 files changed, 15 insertions, 12 deletions
diff --git a/bin/sync_members b/bin/sync_members index 41ffcf043..70eff1b32 100755 --- a/bin/sync_members +++ b/bin/sync_members @@ -70,11 +70,13 @@ Where `options' are: """ import sys +import email.Utils import paths from Mailman import MailList from Mailman import Errors from Mailman import Utils +from Mailman.UserDesc import UserDesc from Mailman.i18n import _ @@ -181,9 +183,9 @@ def main(): print _('Ignore : %30(addr)s') # first filter out any invalid addresses - filemembers = Utils.ParseAddrs(filemembers) + filemembers = email.Utils.getaddresses(filemembers) invalid = 0 - for addr in filemembers: + for name, addr in filemembers: try: Utils.ValidateEmail(addr) except Errors.EmailAddressError: @@ -201,45 +203,46 @@ def main(): sys.exit(1) try: - # get the list of addresses currently subscribed + # Get the list of addresses currently subscribed addrs = {} needsadding = {} for addr in mlist.getMemberCPAddresses(mlist.getMembers()): addrs[addr.lower()] = addr - for addr in filemembers: - # any address found in the file that is also in the list can be - # ignored. if not found in the list, it must be added later + for name, addr in filemembers: + # Any address found in the file that is also in the list can be + # ignored. If not found in the list, it must be added later. laddr = addr.lower() if addrs.has_key(laddr): del addrs[laddr] else: - needsadding[laddr] = addr + needsadding[laddr] = (name, addr) if not needsadding and not addrs: print _('Nothing to do.') sys.exit(0) # addrs contains now all the addresses that need removing - for laddr, addr in needsadding.items(): + for laddr, (name, addr) in needsadding.items(): pw = Utils.MakeRandomPassword() # should not already be subscribed, otherwise our test above is # broken. Bogosity is if the address is listed in the file more # than once. Second and subsequent ones trigger an # MMAlreadyAMember error. Just catch it and go on. + userdesc = UserDesc(addr, name, pw, digest) try: if not dryrun: - mlist.ApprovedAddMember(addr, pw, digest, - welcome, notifyadmin) - print _('Added : %30(laddr)s (%30(addr)s)') + mlist.ApprovedAddMember(userdesc, welcome, notifyadmin) + print _('Added : <%(addr)30s> %(name)s') except Errors.MMAlreadyAMember: pass for laddr, addr in addrs.items(): + name = mlist.getMemberName(addr) # should be a member, otherwise our test above is broken if not dryrun: mlist.DeleteMember(addr, admin_notif=notifyadmin) - print _('Removed: %30(laddr)s (%30(addr)s)') + print _('Removed: <%(addr)30s> %(name)s') mlist.Save() finally: |
