------------------------------------------------------------
revno: 1364
committer: Mark Sapiro <msap...@value.net>
branch nick: 2.1
timestamp: Mon 2012-10-29 12:45:54 -0700
message:
  Added an option to add_members to add members with mail delivery disabled
  by admin.  (LP: 1070574)
modified:
  NEWS
  bin/add_members


--
lp:mailman/2.1
https://code.launchpad.net/~mailman-coders/mailman/2.1

Your team Mailman Checkins is subscribed to branch lp:mailman/2.1.
To unsubscribe from this branch go to 
https://code.launchpad.net/~mailman-coders/mailman/2.1/+edit-subscription
=== modified file 'NEWS'
--- NEWS	2012-10-21 20:32:18 +0000
+++ NEWS	2012-10-29 19:45:54 +0000
@@ -9,6 +9,9 @@
 
   New Features
 
+    - add_members now has an option to add members with mail delivery disabled
+      by admin.  (LP: 1070574)
+
     - IncomingRunner now logs rejected messages to the vette log.
       (LP: 1068837)
 

=== modified file 'bin/add_members'
--- bin/add_members	2010-11-04 17:13:29 +0000
+++ bin/add_members	2012-10-29 19:45:54 +0000
@@ -52,6 +52,10 @@
         the success/failure of these subscriptions, overriding whatever the
         list's `admin_notify_mchanges' setting is.
 
+    --nomail
+    -n
+        Set the newly added members mail delivery to disabled by admin.
+
     --help
     -h
         Print this help message and exit.
@@ -73,12 +77,13 @@
 # Import this /after/ paths so that the sys.path is properly hacked
 from email.Utils import parseaddr
 
-from Mailman import MailList
+from Mailman import i18n
 from Mailman import Utils
+from Mailman import mm_cfg
+from Mailman import Errors
 from Mailman import Message
-from Mailman import Errors
-from Mailman import mm_cfg
-from Mailman import i18n
+from Mailman import MailList
+from Mailman import MemberAdaptor
 
 _ = i18n._
 
@@ -124,7 +129,7 @@
 
 
 
-def addall(mlist, members, digest, ack, outfp):
+def addall(mlist, members, digest, ack, outfp, nomail):
     tee = Tee(outfp)
     for member in members:
         userdesc = UserDesc()
@@ -147,18 +152,20 @@
             print >> tee, _('Hostile address (illegal characters): %(member)s')
         else:
             print >> tee, _('Subscribed: %(member)s')
+            if nomail:
+                mlist.setDeliveryStatus(member, MemberAdaptor.BYADMIN)
 
 
 
 def main():
     try:
         opts, args = getopt.getopt(sys.argv[1:],
-                                   'a:n:r:d:w:h',
+                                   'a:r:d:w:nh',
                                    ['admin-notify=',
                                     'regular-members-file=',
-                                    'non-digest-members-file=',
                                     'digest-members-file=',
                                     'welcome-msg=',
+                                    'nomail',
                                     'help'])
     except getopt.error, msg:
         usage(1, msg)
@@ -171,20 +178,14 @@
     dfile = None
     send_welcome_msg = None
     admin_notif = None
+    nomail = False
     for opt, arg in opts:
         if opt in ('-h', '--help'):
             usage(0)
         elif opt in ('-d', '--digest-members-file'):
             dfile = arg
-        # Deprecate -/--non-digest-members-file or consistency with
-        # list_members
         elif opt in ('-r', '--regular-members-file'):
             nfile = arg
-        elif opt in ('-n', '--non-digest-members-file'):
-            nfile = arg
-            # I don't think we need to use the warnings module here.
-            print >> sys.stderr, 'option', opt, \
-                  'is deprecated, use -r/--regular-members-file'
         elif opt in ('-w', '--welcome-msg'):
             if arg.lower()[0] == 'y':
                 send_welcome_msg = 1
@@ -199,6 +200,8 @@
                 admin_notif = 0
             else:
                 usage(1, _('Bad argument to -a/--admin-notify: %(arg)s'))
+        elif opt in ('-n', '--nomail'):
+            nomail = True
 
     if dfile is None and nfile is None:
         usage(1)
@@ -235,10 +238,10 @@
         s = StringIO()
         i18n.set_language(mlist.preferred_language)
         if nmembers:
-            addall(mlist, nmembers, 0, send_welcome_msg, s)
+            addall(mlist, nmembers, 0, send_welcome_msg, s, nomail)
 
         if dmembers:
-            addall(mlist, dmembers, 1, send_welcome_msg, s)
+            addall(mlist, dmembers, 1, send_welcome_msg, s, nomail)
 
         if admin_notif:
             realname = mlist.real_name

_______________________________________________
Mailman-checkins mailing list
Mailman-checkins@python.org
Unsubscribe: 
http://mail.python.org/mailman/options/mailman-checkins/archive%40jab.org

Reply via email to