[Zope-Checkins] SVN: Products.Five/branches/1.5/ Merge from 1.4
branch:
Philipp von Weitershausen
philikon at philikon.de
Mon Jan 8 11:16:27 EST 2007
Log message for revision 71815:
Merge from 1.4 branch:
Log message for revision 71811:
Add an ftest that demonstrates zope.security.management.checkPermission() works in Zope 2.
This is the reproduceability test case for http://www.zope.org/Collectors/Zope/2190.
Log message for revision 71813:
Also test for a permission that anonymous doesn't have.
Also, added support for the securityPolicy directive which will now be used by Zope 2.
Changed:
U Products.Five/branches/1.5/CHANGES.txt
U Products.Five/branches/1.5/INSTALL.txt
A Products.Five/branches/1.5/browser/tests/test_zope3security.py
A Products.Five/branches/1.5/browser/tests/zope3security.py
U Products.Five/branches/1.5/meta.zcml
U Products.Five/branches/1.5/version.txt
-=-
Modified: Products.Five/branches/1.5/CHANGES.txt
===================================================================
--- Products.Five/branches/1.5/CHANGES.txt 2007-01-08 16:15:34 UTC (rev 71814)
+++ Products.Five/branches/1.5/CHANGES.txt 2007-01-08 16:16:26 UTC (rev 71815)
@@ -5,6 +5,9 @@
Five 1.5.2 (unreleased)
=======================
+* Added support for the <securityPolicy /> ZCML directive known from
+ Zope 3.
+
* View methods which aren't explicitly declared as allowed must be marked
private explicitly to avoid being web publishable.
Modified: Products.Five/branches/1.5/INSTALL.txt
===================================================================
--- Products.Five/branches/1.5/INSTALL.txt 2007-01-08 16:15:34 UTC (rev 71814)
+++ Products.Five/branches/1.5/INSTALL.txt 2007-01-08 16:16:26 UTC (rev 71815)
@@ -1,10 +1,10 @@
How to install Five
===================
-Requirements for Five 1.5
--------------------------
+Requirements for Five 1.5.2
+---------------------------
-* Zope 2.10 with Python 2.4.1+
+* Zope 2.10.2 with Python 2.4.3+
Note that Five 1.5 is already part of Zope 2.10. You can still
install a newer Five version in your instance, if you like. It will
Copied: Products.Five/branches/1.5/browser/tests/test_zope3security.py (from rev 71811, Products.Five/branches/1.4/browser/tests/test_zope3security.py)
===================================================================
--- Products.Five/branches/1.4/browser/tests/test_zope3security.py 2007-01-08 15:27:41 UTC (rev 71811)
+++ Products.Five/branches/1.5/browser/tests/test_zope3security.py 2007-01-08 16:16:26 UTC (rev 71815)
@@ -0,0 +1,65 @@
+import os, sys
+if __name__ == '__main__':
+ execfile(os.path.join(sys.path[0], 'framework.py'))
+
+def test_check_permission():
+ """Code (in Zope 3) often uses
+ zope.security.management.checkPermission to determine whether the
+ current user has a certain permission in a given context. Five
+ inserts its own interaction that assures that such calls still
+ work.
+
+ >>> configure_zcml = '''
+ ... <configure
+ ... xmlns="http://namespaces.zope.org/zope"
+ ... xmlns:browser="http://namespaces.zope.org/browser">
+ ... <securityPolicy
+ ... component="Products.Five.security.FiveSecurityPolicy" />
+ ... <configure package="Products.Five.browser.tests">
+ ... <browser:page
+ ... for="OFS.interfaces.IFolder"
+ ... class=".zope3security.Zope3SecurityView"
+ ... name="zope3security.html"
+ ... permission="zope2.View"
+ ... />
+ ... </configure>
+ ... </configure>'''
+
+ >>> import Products.Five
+ >>> from Products.Five import zcml
+ >>> zcml.load_config("configure.zcml", Products.Five)
+ >>> zcml.load_string(configure_zcml)
+
+ In order to be able to traverse to the PageTemplate view, we need
+ a traversable object:
+
+ >>> from Products.Five.tests.testing import manage_addFiveTraversableFolder
+ >>> manage_addFiveTraversableFolder(self.folder, 'testoid', 'Testoid')
+
+ Now we access a page that uses
+ zope.security.management.checkPermission(). We see it works as
+ expected:
+
+ >>> from Products.Five.testbrowser import Browser
+ >>> browser = Browser()
+ >>> browser.open('http://localhost/test_folder_1_/testoid/@@zope3security.html?permission=zope2.View')
+ >>> print browser.contents
+ Yes, you have the 'zope2.View' permission.
+ >>> browser.open('http://localhost/test_folder_1_/testoid/@@zope3security.html?permission=zope2.DeleteObjects')
+ >>> print browser.contents
+ No, you don't have the 'zope2.DeleteObjects' permission.
+
+ Clean up:
+
+ >>> from zope.app.testing.placelesssetup import tearDown
+ >>> tearDown()
+
+ """
+
+def test_suite():
+ from Testing.ZopeTestCase import FunctionalDocTestSuite
+ from zope.testing.doctest import ELLIPSIS
+ return FunctionalDocTestSuite(optionflags=ELLIPSIS)
+
+if __name__ == '__main__':
+ framework()
Copied: Products.Five/branches/1.5/browser/tests/zope3security.py (from rev 71811, Products.Five/branches/1.4/browser/tests/zope3security.py)
===================================================================
--- Products.Five/branches/1.4/browser/tests/zope3security.py 2007-01-08 15:27:41 UTC (rev 71811)
+++ Products.Five/branches/1.5/browser/tests/zope3security.py 2007-01-08 16:16:26 UTC (rev 71815)
@@ -0,0 +1,10 @@
+from Products.Five import BrowserView
+from zope.security.management import checkPermission
+
+class Zope3SecurityView(BrowserView):
+
+ def __call__(self, permission):
+ if checkPermission(permission, self.context):
+ return "Yes, you have the %r permission." % permission
+ else:
+ return "No, you don't have the %r permission." % permission
Modified: Products.Five/branches/1.5/meta.zcml
===================================================================
--- Products.Five/branches/1.5/meta.zcml 2007-01-08 16:15:34 UTC (rev 71814)
+++ Products.Five/branches/1.5/meta.zcml 2007-01-08 16:16:26 UTC (rev 71815)
@@ -82,12 +82,19 @@
handler="zope.app.schema.metaconfigure.vocabulary"
/>
+ <!-- BBB 2006/02/24, to be removed after 12 months -->
<meta:directive
name="defaultLayer"
schema="zope.app.component.metadirectives.IDefaultLayerDirective"
handler="zope.app.component.metaconfigure.defaultLayer"
/>
+ <meta:directive
+ name="securityPolicy"
+ schema="zope.security.zcml.ISecurityPolicyDirective"
+ handler="zope.security.zcml.securityPolicy"
+ />
+
</meta:directives>
<meta:directives namespace="http://namespaces.zope.org/five">
Modified: Products.Five/branches/1.5/version.txt
===================================================================
--- Products.Five/branches/1.5/version.txt 2007-01-08 16:15:34 UTC (rev 71814)
+++ Products.Five/branches/1.5/version.txt 2007-01-08 16:16:26 UTC (rev 71815)
@@ -1 +1 @@
-Five 1.5.1
+Five 1.5.2
More information about the Zope-Checkins
mailing list