Log message for revision 68071:
  Applying restrictedTraverse fix to the PageTemplate version for 2.8.
  

Changed:
  U   
Zope/branches/Zope-2_8-branch/lib/python/Products/PageTemplates/Expressions.py

-=-
Modified: 
Zope/branches/Zope-2_8-branch/lib/python/Products/PageTemplates/Expressions.py
===================================================================
--- 
Zope/branches/Zope-2_8-branch/lib/python/Products/PageTemplates/Expressions.py  
    2006-05-09 20:03:11 UTC (rev 68070)
+++ 
Zope/branches/Zope-2_8-branch/lib/python/Products/PageTemplates/Expressions.py  
    2006-05-09 20:04:19 UTC (rev 68071)
@@ -294,7 +294,19 @@
                 container = o.im_self
             elif (has(aq_base(object), name) and get(object, name) == o):
                 container = object
-            if not validate(object, container, name, o):
+            try:
+                validated = validate(object, container, name, o)
+            except Unauthorized:
+                # If next is a simple unwrapped property, it's
+                # parentage is indeterminate, but it may have been
+                # acquired safely.  In this case validate will
+                # raise an error, and we can explicitly check that
+                # our value was acquired safely.
+                validated = 0
+                if container is None and \
+                                        guarded_getattr(object, name, M) is o:
+                    validated = 1
+            if not validated:
                 raise Unauthorized, name
         else:
             # Try an attribute.

_______________________________________________
Zope-Checkins maillist  -  Zope-Checkins@zope.org
http://mail.zope.org/mailman/listinfo/zope-checkins

Reply via email to