From dc96ef28abba721c976791efe0bcfce7d620c8d1 Mon Sep 17 00:00:00 2001 From: Patrick Gerken Date: Thu, 12 Jul 2012 10:20:44 +0000 Subject: [PATCH] Do not assume that you can iterate over a publishable object --- doc/CHANGES.rst | 2 ++ src/ZPublisher/BaseRequest.py | 3 ++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/doc/CHANGES.rst b/doc/CHANGES.rst index d9e6f7e3ea..177ce8fb35 100644 --- a/doc/CHANGES.rst +++ b/doc/CHANGES.rst @@ -14,6 +14,8 @@ http://docs.zope.org/zope2/releases/. - AccessControl = 2.13.8 +- ZPublisher: Do not assume that you can iterate over a publishable object + 2.13.15 (2012-06-22) -------------------- diff --git a/src/ZPublisher/BaseRequest.py b/src/ZPublisher/BaseRequest.py index a0244a6981..8d578fef5e 100644 --- a/src/ZPublisher/BaseRequest.py +++ b/src/ZPublisher/BaseRequest.py @@ -541,7 +541,8 @@ def traverse(self, path, response=None, validated_hook=None): hasattr(parents[1], 'aq_base') and not hasattr(parents[1],'__bobo_traverse__')): base = parents[1].aq_base - if not (hasattr(base, entry_name) or entry_name in base): + if not (hasattr(base, entry_name) or + (hasattr(entry_name, '__iter__') and entry_name in base)): raise AttributeError(entry_name) # After traversal post traversal hooks aren't available anymore