[Checkins] SVN: zope.security/trunk/ Add `addCheckerPublic` helper function in ``zope.security.testing`` module that registers the "zope.Public" permission as an IPermission utility. This came from zope.app.security.

Dan Korostelev nadako at gmail.com
Wed Mar 11 23:23:31 EDT 2009


Log message for revision 97951:
  Add `addCheckerPublic` helper function in ``zope.security.testing`` module that registers the "zope.Public" permission as an IPermission utility. This came from zope.app.security.
  

Changed:
  U   zope.security/trunk/CHANGES.txt
  U   zope.security/trunk/src/zope/security/testing.py

-=-
Modified: zope.security/trunk/CHANGES.txt
===================================================================
--- zope.security/trunk/CHANGES.txt	2009-03-12 03:14:02 UTC (rev 97950)
+++ zope.security/trunk/CHANGES.txt	2009-03-12 03:23:29 UTC (rev 97951)
@@ -18,6 +18,9 @@
 - Add zcml permission definition for the special "zope.Public"
   permission.
 
+- Add `addCheckerPublic` helper function in ``zope.security.testing`` module
+  that registers the "zope.Public" permission as an IPermission utility.
+
 - Add security declarations for the ``zope.security.permisson.Permission`` class.
 
 - Improve test coverage.

Modified: zope.security/trunk/src/zope/security/testing.py
===================================================================
--- zope.security/trunk/src/zope/security/testing.py	2009-03-12 03:14:02 UTC (rev 97950)
+++ zope.security/trunk/src/zope/security/testing.py	2009-03-12 03:23:29 UTC (rev 97951)
@@ -18,8 +18,9 @@
 $Id$
 """
 
-from zope import interface
+from zope import interface, component
 from zope.security import interfaces
+from zope.security.permission import Permission
 
 class Principal:
 
@@ -40,3 +41,17 @@
     def __init__(self, principal):
         self.principal = principal
         self.interaction = None
+
+
+def addCheckerPublic():
+    """Add the CheckerPublic permission as 'zope.Public'"""
+
+    perm = Permission('zope.Public', 'Public',
+            """Special permission used for resources that are always public
+
+            The public permission is effectively an optimization, sine
+            it allows security computation to be bypassed.
+            """
+            )
+    gsm = component.getGlobalSiteManager()
+    gsm.registerUtility(perm, interfaces.IPermission, perm.id)



More information about the Checkins mailing list