• Remember Mailing List

Re: membrane assertion error in getUserAuthProvider

from Rob Miller on Jul 03, 2008 01:41 PM
Jim Baack wrote:
> Thanks, Rob.
> 
> I simplified the test case a little and used the remember type directly. Same problem.
> 
> The debug shows that the the new membrane_tool catalog contains both the original and new members. Perhaps the catalog needs to be cleared as it's cloned.
> 
> Clearly, we can tell which of the two objects is the correct one by comparing to the tool itself (last line). Probably not the ideal fix.
> 
> Any thoughts? Thanks.

not yet... i'll try to reproduce myself, see if i can't figure something out. 
  hopefully i'll be able to get to this later today.

-r

> 
> Jim
> 
>  ----------------------------------------------
> 
> (Pdb) print len(members)
> 2
> (Pdb) print members[0].getObject().absolute_url()
> http://localhost:8380/test/copy_of_plone01/portal_memberdata/member1
> (Pdb) print members[1].getObject().absolute_url()
> http://localhost:8380/test/plone01/portal_memberdata/member1
> 
> (Pdb) print self.absolute_url()
> http://localhost:8380/test/copy_of_plone01/membrane_tool
> (Pdb)                  
> 
> 
> 
>>> Jim Baack
>>>
>>> -------------------------------------------------------
>>>
>>>
>>> Traceback (innermost last):
>>>
>>>     * Module ZPublisher.Publish, line 119, in publish
>>>     * Module ZPublisher.mapply, line 88, in mapply
>>>     * Module ZPublisher.Publish, line 42, in call_object
>>>     * Module OFS.ObjectManager, line 609, in manage_importObject
>>>     * Module OFS.ObjectManager, line 631, in _importObjectFromFile
>>>     * Module OFS.ObjectManager, line 347, in _setObject
>>>     * Module zope.event, line 23, in notify
>>>     * Module zope.component.event, line 26, in dispatch
>>>     * Module zope.component._api, line 130, in subscribers
>>>     * Module zope.component.registry, line 290, in subscribers
>>>     * Module zope.interface.adapter, line 535, in subscribers
>>>     * Module zope.component.event, line 33, in objectEventNotify
>>>     * Module zope.component._api, line 130, in subscribers
>>>     * Module zope.component.registry, line 290, in subscribers
>>>     * Module zope.interface.adapter, line 535, in subscribers
>>>     * Module OFS.subscribers, line 119, in dispatchObjectMovedEvent
>>>     * Module zope.app.container.contained, line 182, in
>> dispatchToSublocations
>>>     * Module zope.component._api, line 130, in subscribers
>>>     * Module zope.component.registry, line 290, in subscribers
>>>     * Module zope.interface.adapter, line 535, in subscribers
>>>     * Module OFS.subscribers, line 119, in dispatchObjectMovedEvent
>>>     * Module zope.app.container.contained, line 182, in
>> dispatchToSublocations
>>>     * Module zope.component._api, line 130, in subscribers
>>>     * Module zope.component.registry, line 290, in subscribers
>>>     * Module zope.interface.adapter, line 535, in subscribers
>>>     * Module OFS.subscribers, line 119, in dispatchObjectMovedEvent
>>>     * Module zope.app.container.contained, line 182, in
>> dispatchToSublocations
>>>     * Module zope.component._api, line 130, in subscribers
>>>     * Module zope.component.registry, line 290, in subscribers
>>>     * Module zope.interface.adapter, line 535, in subscribers
>>>     * Module Products.remember.utils, line 103, in fixOwnership
>>>     * Module Products.remember.content.member, line 115, in
>> fixOwnership
>>>     * Module Products.remember.content.member, line 131, in getUser
>>>     * Module Products.PluggableAuthService.PluggableAuthService,
>> line 223, in getUserById
>>>     * Module Products.PluggableAuthService.PluggableAuthService,
>> line 730, in _findUser
>>>     * Module Products.membrane.plugins.propertymanager, line 89, in
>> getPropertiesForUser
>>>     * Module Products.membrane.tools.membrane, line 228, in
>> getUserAuthProvider
>>> AssertionError
>>>
>>>
>>> --------------------------------------------------------------
>>>
>>>    def getUserAuthProvider(self, login):
>>>  	        """
>>>  	        Return the unique object that is the authentication
>> provider
>>>  	        for the provided login.
>>>  	        """
>>>  	        if not login: # could be either '' or None
>>>  	            return None
>>>  	        uSR = self.unrestrictedSearchResults
>>>  	        idxname = 'getUserName'
>>>  	        if self.case_sensitive_auth and \
>>>  	               ('exact_getUserName' in self._catalog.indexes):
>>>  	            idxname = 'exact_getUserName'
>>>  	        query = {idxname: login,
>>>  	                 'object_implements':
>> IMembraneUserAuth.__identifier__}
>>>  	        members = uSR(**query)
>>>  	
>>>  	        if not members:
>>>  	            return None
>>>  	
>>> -->             assert len(members) == 1
>>>  	        member = members[0]._unrestrictedGetObject()
>>>  	        return member
>>>
>>>
>>>
>>> --
>>> Archive:
>> http://www.openplans.org/projects/remember/lists/remember/archive/2008/07/1215038176436
>>> To unsubscribe send an email with subject "unsubscribe" to
>> remember@....  Please contact
>> remember-manager@... for questions.
>>
>>
>> --
>> Archive:
>> http://www.openplans.org/projects/remember/lists/remember/archive/2008/07/1215039422740
>> To unsubscribe send an email with subject "unsubscribe" to
>> remember@....  Please contact
>> remember-manager@... for questions.

Return to date view: threaded or flat