On Mon, 2003-12-08 at 20:43, James Ralston wrote: > I've skimmed the FAQ and the mailing list archives, but I didn't see > this subject come up... > > I'm using Mailman 2.1.1. I really need to be able to prevent people > who are using the "list creator" role from being able to create > mailing lists with certain names. > > I'd like to be able to specify a list of regular expressions to > consider "bad", like so: > > ^postmaster$ > ^abuse$ > ^news$ > -request$ > ^owner- > > Ideally, I'd also like to be able to enforce a rule that all mailing > list names must match a certain regular expression. E.g.: > > ^[:alpha:][:alnum:]*(-[:alnum:]+)*$ > > A new list name would only be permitted if it didn't match any of the > "bad" regular expressions *and* matched the "good" regular expression. > > While I'm not very familiar with Python, from a cursory examination of > the code, it would appear that Mailman doesn't offer this feature. Am > I mistaken? > > Assuming I'm not mistaken, would there be any resistance to adding > this feature? And what would be the best mechanism to do so? > > Regards,
This is almost trivial. Modify the file ~mailman/Mailman/Utils.py The first defined function therein is "list_exists" which is used when creating a new list to determine if the list can be created. def list_exists(listname): """Return true iff list `listname' exists.""" # The existance of any of the following file proves the list exists # <wink>: config.pck, config.pck.last, config.db, config.db.last # # The former two are for 2.1alpha3 and beyond, while the latter # two are for all earlier versions. basepath = Site.get_listpath(listname) for ext in ('.pck', '.pck.last', '.db', '.db.last'): dbfile = os.path.join(basepath, 'config' + ext) if os.path.exists(dbfile): return 1 return 0 You could simply add your restrictions in here (but be sure to read up on how Regular Expressions work in Python - they are different than what your used to in shell expansions)... Alternately, as the code points out, you could simply create a directory under ~mailman/lists/ and then "touch config.db" in that directory: mkdir ~mailman/lists/postmaster touch ~mailman/lists/postmaster/config.db Viola! Now no user can create a list called "postmaster". HtH - Jon Carnes ------------------------------------------------------ Mailman-Users mailing list [EMAIL PROTECTED] http://mail.python.org/mailman/listinfo/mailman-users Mailman FAQ: http://www.python.org/cgi-bin/faqw-mm.py Searchable Archives: http://www.mail-archive.com/mailman-users%40python.org/ This message was sent to: [EMAIL PROTECTED] Unsubscribe or change your options at http://mail.python.org/mailman/options/mailman-users/archive%40jab.org