diff --git a/doc/CHANGES.txt b/doc/CHANGES.txt index adb96c56e43772ebe048ed60e5e6f40f2ebafbe3..b7bc3deb2dced888e4681067c59327fc3710aaab 100644 --- a/doc/CHANGES.txt +++ b/doc/CHANGES.txt @@ -8,7 +8,10 @@ Zope Changes Bugs fixed - - fixed outdated transaction.commit(1) call in + - Launchpad #245649: the Products package is now a proper + "namespace package" under the rules specified by setuptools. + + - Fixed outdated transaction.commit(1) call in ZODBMountPoint.SimpleTrailblazer - Launchpad #239636: Ensure that HEAD requests lock an empty body diff --git a/lib/python/AccessControl/Permission.py b/lib/python/AccessControl/Permission.py index 9a2d32b06bc7e719091642b7e727fe87e80acaa9..8f812197b9add4076bf250175d7725e51703e6e2 100644 --- a/lib/python/AccessControl/Permission.py +++ b/lib/python/AccessControl/Permission.py @@ -129,8 +129,9 @@ def registerPermissions(permissions, defaultDefault=('Manager',)): else: perm, methods, default = setting _registeredPermissions[perm]=1 + Products_permissions = getattr(Products, '__ac_permissions__', ()) Products.__ac_permissions__=( - Products.__ac_permissions__+((perm,(),default),)) + Products_permissions + ((perm, (), default),)) mangled=pname(perm) # get mangled permission name if not hasattr(Globals.ApplicationDefaultPermissions, mangled): setattr(Globals.ApplicationDefaultPermissions, diff --git a/lib/python/OFS/ObjectManager.py b/lib/python/OFS/ObjectManager.py index 7c52d3328c735dd3f1010f969fb613e854265019..41fb4f81636ff638f156022a01f85b011c86b561 100644 --- a/lib/python/OFS/ObjectManager.py +++ b/lib/python/OFS/ObjectManager.py @@ -250,7 +250,8 @@ class ObjectManager( return meta_types def _subobject_permissions(self): - return (Products.__ac_permissions__+ + Products_permissions = getattr(Products, '__ac_permissions__', ()) + return (Products_permissions + self.aq_acquire('_getProductRegistryData')('ac_permissions') ) diff --git a/lib/python/Products/__init__.py b/lib/python/Products/__init__.py index 5910d2442eb2ad8b3763fc94fa8b538ce86cc242..6fad949723aabc2a51d3cb9f0654591f2982c030 100644 --- a/lib/python/Products/__init__.py +++ b/lib/python/Products/__init__.py @@ -10,8 +10,6 @@ # FOR A PARTICULAR PURPOSE # ############################################################################## -__ac_permissions__=() - # See http://peak.telecommunity.com/DevCenter/setuptools#namespace-packages try: __import__('pkg_resources').declare_namespace(__name__) diff --git a/lib/python/ZClasses/Basic.py b/lib/python/ZClasses/Basic.py index aae8153eecc2d807fbffe643c9706547fa57c2d7..99fbc7234e4ca2168e0651ad812b92f5f575cbc6 100644 --- a/lib/python/ZClasses/Basic.py +++ b/lib/python/ZClasses/Basic.py @@ -189,9 +189,10 @@ class ZClassPermissionsSheet(OFS.PropertySheets.PropertySheet, manage=Globals.DTMLFile('dtml/classPermissions', globals()) def possible_permissions(self): + Products_permissions = getattr(Products, '__ac_permissions__', ()) r=map( lambda p: p[0], - Products.__ac_permissions__+ + Products_permissions + self.aq_acquire('_getProductRegistryData')('ac_permissions') ) r.sort() @@ -199,9 +200,10 @@ class ZClassPermissionsSheet(OFS.PropertySheets.PropertySheet, def manage_edit(self, selected=[], REQUEST=None): "Remove some permissions" + Products_permissions = getattr(Products, '__ac_permissions__', ()) r=[] for p in ( - Products.__ac_permissions__+ + Products_permissions + self.aq_acquire('_getProductRegistryData')('ac_permissions')): if p[0] in selected: r.append(p)