On 01/14/2015 04:11 PM, Chris Nulk wrote:
>
> 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@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.
Correct.
> 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.
I would replace the elif clause with
elif (wtype == mm_cfg.EmailListEx and addr.startswith('@') and
(property.endswith('_these_nonmembers') or
property == 'my_attribute')
indented to the proper level.
DRY
--
Mark Sapiro <[email protected]> The highway is for gamblers,
San Francisco Bay Area, California better use your sense - B. Dylan
------------------------------------------------------
Mailman-Users mailing list [email protected]
https://mail.python.org/mailman/listinfo/mailman-users
Mailman FAQ: http://wiki.list.org/x/AgA3
Security Policy: http://wiki.list.org/x/QIA9
Searchable Archives: http://www.mail-archive.com/mailman-users%40python.org/
Unsubscribe:
https://mail.python.org/mailman/options/mailman-users/archive%40jab.org