[Zope-CMF] Re: SVN: CMF/trunk/CMF - fixed credentialsChanged (don't use self.REQUEST)

yuppie y.2007- at wcm-solutions.de
Tue Jul 3 12:32:39 EDT 2007


Tres Seaver wrote:
>> Modified: CMF/trunk/CMFCore/MembershipTool.py
>> ===================================================================
>> --- CMF/trunk/CMFCore/MembershipTool.py	2007-06-24 07:49:57 UTC (rev 77002)
>> +++ CMF/trunk/CMFCore/MembershipTool.py	2007-06-24 07:55:55 UTC (rev 77003)
>> @@ -316,21 +316,23 @@
>>          return _checkPermission(permissionName, object)
>>  
>>      security.declarePublic('credentialsChanged')
>> -    def credentialsChanged(self, password):
>> +    def credentialsChanged(self, password, REQUEST=None):
>>          '''
>>          Notifies the authentication mechanism that this user has changed
>>          passwords.  This can be used to update the authentication cookie.
>>          Note that this call should *not* cause any change at all to user
>>          databases.
>>          '''
>> +        if REQUEST is None:
>> +            raise TypeError('new REQUEST argument required')
>> +
> 
> This is not a valid use of TypeError:  either the argument is required,
> in which case no default should be supplied, or it is optional, in which
> case the method must do something sensible with the default value.
> Trying to have it both ways is a recipe for confusion and disaster.

I replaced this TypeError by BBB code and a deprecation warning, so for 
now this is resolved.

In general we might need a pattern like that if other optional arguments 
come before REQUEST and we want to make REQUEST required. I don't think 
changing the argument order is less confusing.

Cheers, Yuppie



More information about the Zope-CMF mailing list