[Checkins] SVN: five.grok/trunk/ Fix a bug with unrestrictedTraverse() and directory resource subdirectories
Martin Aspeli
optilude at gmx.net
Wed Jun 16 12:38:54 EDT 2010
Log message for revision 113566:
Fix a bug with unrestrictedTraverse() and directory resource subdirectories
Changed:
U five.grok/trunk/docs/HISTORY.txt
U five.grok/trunk/src/five/grok/components.py
U five.grok/trunk/src/five/grok/ftests/directoryresource/dirresource.py
-=-
Modified: five.grok/trunk/docs/HISTORY.txt
===================================================================
--- five.grok/trunk/docs/HISTORY.txt 2010-06-16 16:38:19 UTC (rev 113565)
+++ five.grok/trunk/docs/HISTORY.txt 2010-06-16 16:38:54 UTC (rev 113566)
@@ -4,7 +4,10 @@
1.1.2 (unreleased)
------------------
-- ...
+- Fixed problem with unrestrictedTraverse() and files in subfolders of grokked
+ resource directories. This fix also depends on fixes in Zope 2.12.6 or
+ later.
+ [optilude]
1.1.1 (2010-02-04)
------------------
Modified: five.grok/trunk/src/five/grok/components.py
===================================================================
--- five.grok/trunk/src/five/grok/components.py 2010-06-16 16:38:19 UTC (rev 113565)
+++ five.grok/trunk/src/five/grok/components.py 2010-06-16 16:38:54 UTC (rev 113566)
@@ -150,7 +150,10 @@
# Allow traversal to contained resources from protected code
__allow_access_to_unprotected_subobjects__ = True
-
+
+ # Allow subdirectories to work with restrictedTraverse() (in Zope >= 2.12.6)
+ __roles__ = None
+
resource_factories = {}
for type, factory in (resource.DirectoryResource.resource_factories.items()):
if factory is resource.PageTemplateResourceFactory:
Modified: five.grok/trunk/src/five/grok/ftests/directoryresource/dirresource.py
===================================================================
--- five.grok/trunk/src/five/grok/ftests/directoryresource/dirresource.py 2010-06-16 16:38:19 UTC (rev 113565)
+++ five.grok/trunk/src/five/grok/ftests/directoryresource/dirresource.py 2010-06-16 16:38:54 UTC (rev 113566)
@@ -64,4 +64,15 @@
>>> print browser.contents
Baz resource file's content.
+We can restricted-traverse to resources in directories and subdirectories:
+
+ >>> app.restrictedTraverse('++resource++five.grok.ftests.directoryresource.fixture.resource/file.txt')
+ <Products.Five.browser.resource.FileResource object at ...>
+
+ >>> app.restrictedTraverse('++resource++frupple/file.txt')
+ <Products.Five.browser.resource.FileResource object at ...>
+
+ >>> app.restrictedTraverse('++resource++fropple/baz/file.txt')
+ <Products.Five.browser.resource.FileResource object at ...>
+
"""
More information about the checkins
mailing list