[Mailman-Users] Small issue (hopefully) with upgrading/migrating from v2.1.9 to v2.1.18-1

Chris Nulk cnulk at scu.edu
Thu Jan 15 01:11:23 CET 2015


Hello,

In a previous message, I mentioned my plans on upgrading/migrating a 
customized v2.1.9 installation to a customized v2.1.18-1 installation.  
I have analyzed the changes needed and made to the v2.1.18-1 installation.

I have run into a small problem.  One of the customizations I did was to 
added an additional attribute to the sender filters similar to the 
*_these_nonmembers fields.  On the v2.1.9 installation, my customization 
will accept individual email addresses, regex's, and lists.  On the 
v2.1.18-1 installation, it only accepts the individual email addresses.  
I took a closer look at the code (GUIBase.py in the Gui directory) and I 
believe the solution lies there.

The code on the v2.1.18-1 installation has some additional checks. 
Specifically, the following:
                     # See if this is a context that accepts regular
                     # expressions, and that the re is legal
                     if wtype == mm_cfg.EmailListEx and 
addr.startswith('^'):
                         try:
                             re.compile(addr)
                         except re.error:
                             bad_addrs.append(addr)
                     elif (wtype == mm_cfg.EmailListEx and 
addr.startswith('@')
                             and property.endswith('_these_nonmembers')):
                         # XXX Needs to be reviewed for list at domain names.
                         # don't reference your own list
                         if addr[1:] == mlist.internal_name():
                             bad_addrs.append(addr)
                         # check for existence of list?  For now allow
                         # reference to list before creating it.
                     else:
                         bad_addrs.append(addr)

On v2.1.9, the code did not check for the 'and 
property.endswith('_these_nonmembers')):'.

I think that addtional check is preventing my additional 
attribute/property from accepting lists in the field.

Before I go off and possibly muck my installation up, can I simply 
duplicate the 'elif' section with the property.endswith code and replace 
the '_these_nonmembers' with my attribute/property?

Or is a better solution to do something list:
                          elif (wtype == mm_cfg.EmailListEx and 
addr.startswith('@')
                             and (property.endswith('_these_nonmembers') 
or (property.endswith('my_attribute'))):
Would that work?

Or even more optimially, I am open to the correct solution to my issue.

Thanks for any assistance,
Chris




More information about the Mailman-Users mailing list