[Zope-Checkins] SVN: Zope/trunk/src/ZPublisher/ - fixed a traversal regression

Yvo Schubbe y.2011 at wcm-solutions.de
Thu Feb 23 08:36:52 UTC 2012


Log message for revision 124462:
  - fixed a traversal regression

Changed:
  UU  Zope/trunk/src/ZPublisher/BaseRequest.py
  UU  Zope/trunk/src/ZPublisher/tests/testBaseRequest.py

-=-
Modified: Zope/trunk/src/ZPublisher/BaseRequest.py
===================================================================
--- Zope/trunk/src/ZPublisher/BaseRequest.py	2012-02-23 08:36:31 UTC (rev 124461)
+++ Zope/trunk/src/ZPublisher/BaseRequest.py	2012-02-23 08:36:51 UTC (rev 124462)
@@ -540,7 +540,7 @@
         if (no_acquire_flag and
             hasattr(parents[1], 'aq_base') and
             not hasattr(parents[1],'__bobo_traverse__')):
-            base = parents[-1].aq_base
+            base = parents[1].aq_base
             if not (hasattr(base, entry_name) or entry_name in base):
                 raise AttributeError(entry_name)
 


Property changes on: Zope/trunk/src/ZPublisher/BaseRequest.py
___________________________________________________________________
Deleted: svn:keywords
   - Id

Modified: Zope/trunk/src/ZPublisher/tests/testBaseRequest.py
===================================================================
--- Zope/trunk/src/ZPublisher/tests/testBaseRequest.py	2012-02-23 08:36:31 UTC (rev 124461)
+++ Zope/trunk/src/ZPublisher/tests/testBaseRequest.py	2012-02-23 08:36:51 UTC (rev 124462)
@@ -73,6 +73,9 @@
                 # Attribute without docstring.
                 return 'unpublishable'
 
+            def __contains__(self, name):
+                return False
+
         return DummyObjectBasic
 
     def _makeBasicObject(self):
@@ -194,6 +197,15 @@
         self.assertEqual(r.URL, '/folder/objBasic')
         self.assertEqual(r.response.base, '')
 
+    def test_traverse_basic_no_acquire_flag(self):
+        root, folder = self._makeRootAndFolder()
+        folder._setObject('objBasic', self._makeBasicObject())
+        r = self._makeOne(root)
+        r['REQUEST_METHOD'] = 'HEAD'
+        r.traverse('folder/objBasic')
+        self.assertEqual(r.URL, '/folder/objBasic')
+        self.assertEqual(r.response.base, '')
+
     def test_traverse_withDefault(self):
         root, folder = self._makeRootAndFolder()
         folder._setObject('objWithDefault', self._makeObjectWithDefault())


Property changes on: Zope/trunk/src/ZPublisher/tests/testBaseRequest.py
___________________________________________________________________
Deleted: svn:keywords
   - Id



More information about the Zope-Checkins mailing list