• Remember Mailing List

membrane assertion error in getUserAuthProvider

from Jim Baack on Jul 02, 2008 06:36 PM
When I attempt to copy/paste or import a Plone site where I've created a single member of a remember-derived type I get the following assertion error (relevant code also included below). When I change the offending line 
    assert len(members) == 1  
to
    assert len(members) >= 1
reflecting the possibility of more than one result in the query, everything works fine and the cloned member works fine, retains proper ownership, etc.

Clearly, this isn't a real fix. Any ideas on why this happens and a proper way to deal with it. Thanks.

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

Return to date view: threaded or flat