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.