Log message for revision 67116: Moved the roles checking outside the name traversal.
Changed: U Zope/branches/easter-sprint_traversal-refactor/lib/python/ZPublisher/BaseRequest.py -=- Modified: Zope/branches/easter-sprint_traversal-refactor/lib/python/ZPublisher/BaseRequest.py =================================================================== --- Zope/branches/easter-sprint_traversal-refactor/lib/python/ZPublisher/BaseRequest.py 2006-04-19 06:48:06 UTC (rev 67115) +++ Zope/branches/easter-sprint_traversal-refactor/lib/python/ZPublisher/BaseRequest.py 2006-04-19 08:47:39 UTC (rev 67116) @@ -185,7 +185,6 @@ def traverseName(self, object, entry_name): - got = 0 URL=self['URL'] if entry_name[:1]=='_': raise Forbidden("Object name begins with an underscore at: %s" % URL) @@ -200,7 +199,6 @@ try: subobject=getattr(object, entry_name) except AttributeError: - got=1 subobject=object[entry_name] # Ensure that the object has a docstring, or that the parent @@ -227,10 +225,6 @@ "The object at %s is not publishable." % URL ) - self.roles = getRoles( - object, (not got) and entry_name or None, subobject, - self.roles) - print self.roles return subobject @@ -362,7 +356,17 @@ request['URL'] = URL = '%s/%s' % (request['URL'], step) try: - object = self.traverseName(object, entry_name) + subobject = self.traverseName(object, entry_name) + if (hasattr(object,'__bobo_traverse__') or + hasattr(object, entry_name)): + check_name = entry_name + else: + check_name = None + + self.roles = getRoles( + object, check_name, subobject, + self.roles) + object = subobject except (KeyError, AttributeError): if response.debug_mode: return response.debugError( _______________________________________________ Zope-Checkins maillist - Zope-Checkins@zope.org http://mail.zope.org/mailman/listinfo/zope-checkins