Comment 1 for bug 266041

Revision history for this message
Edentz (edentz) wrote :

I encountered this bug too. It doesn't look like it is fixed
in 2.1.5 or CVS yet so I did a bit of searching through the
Mailman source code and found the part(s) that causes the
deletion of the member when attempting to change the case of
the localpart of the email address. Lines 332 - 341 of
Mailman/Cgi/options.py pass the global change address off
and the actual deletion occurs in the
ApprovedChangeMemberAddress() method in Mailman/MailList.py.
If you change the first if statement in that method (should
be line 1050 in Mailman version 2.1.4)
from:
if self.isMember(newaddr):
to:
if self.getMemberCPAddress(oldaddr) == newaddr:

And then the last if statement (should be line 1070 in
Mailman version 2.1.4) in the method
from:
if mlist.isMember(newaddr):
to:
if mlist.getMemberCPAddress(oldaddr) == newaddr:

It should fix the bug. However I haven't tested this
extensively and it may break other functionality.

Eirik