[Checkins] SVN: Products.CMFCore/branches/2.2/Products/CMFCore/ Backport c113180 from trunk

Hanno Schlichting hannosch at hannosch.eu
Sun Jun 6 09:46:20 EDT 2010


Log message for revision 113196:
  Backport c113180 from trunk
  

Changed:
  U   Products.CMFCore/branches/2.2/Products/CMFCore/CHANGES.txt
  U   Products.CMFCore/branches/2.2/Products/CMFCore/permissions.py

-=-
Modified: Products.CMFCore/branches/2.2/Products/CMFCore/CHANGES.txt
===================================================================
--- Products.CMFCore/branches/2.2/Products/CMFCore/CHANGES.txt	2010-06-06 13:44:20 UTC (rev 113195)
+++ Products.CMFCore/branches/2.2/Products/CMFCore/CHANGES.txt	2010-06-06 13:46:20 UTC (rev 113196)
@@ -4,6 +4,8 @@
 2.2.2 (unreleased)
 ------------------
 
+- Updated setDefaultRoles to use the addPermission API if available.
+
 - Updated test to work with zope.contenttype >= 3.4.3.
 
 

Modified: Products.CMFCore/branches/2.2/Products/CMFCore/permissions.py
===================================================================
--- Products.CMFCore/branches/2.2/Products/CMFCore/permissions.py	2010-06-06 13:44:20 UTC (rev 113195)
+++ Products.CMFCore/branches/2.2/Products/CMFCore/permissions.py	2010-06-06 13:46:20 UTC (rev 113196)
@@ -55,20 +55,29 @@
 security.declarePublic('ViewManagementScreens')
 ViewManagementScreens = Permissions.view_management_screens
 
+addPermission = None
+try:
+    from AccessControl.Permission import addPermission
+except ImportError:
+    pass
+
 security.declarePrivate('setDefaultRoles')
 def setDefaultRoles(permission, roles):
     '''
     Sets the defaults roles for a permission.
     '''
-    import Products
-    # XXX This ought to be in AccessControl.SecurityInfo.
-    registered = _registeredPermissions
-    if not registered.has_key(permission):
-        registered[permission] = 1
-        Products.__ac_permissions__=(
-            Products.__ac_permissions__+((permission,(),roles),))
-        mangled = pname(permission)
-        setattr(ApplicationDefaultPermissions, mangled, roles)
+    if addPermission is not None:
+        addPermission(permission, roles)
+    else:
+        # BBB This is in AccessControl starting in Zope 2.13
+        import Products
+        registered = _registeredPermissions
+        if not registered.has_key(permission):
+            registered[permission] = 1
+            Products.__ac_permissions__=(
+                Products.__ac_permissions__+((permission,(),roles),))
+            mangled = pname(permission)
+            setattr(ApplicationDefaultPermissions, mangled, roles)
 
 # Note that we can only use the default Zope roles in calls to
 # setDefaultRoles().  The default Zope roles are:



More information about the checkins mailing list