Commit 4b71ec52 authored by Tres Seaver's avatar Tres Seaver

Backport fix for LP#245649.

parent 8406133b
......@@ -8,6 +8,9 @@ Zope Changes
Bugs fixed
- Launchpad #245649: the Products package is now a proper
"namespace package" under the rules specified by setuptools.
- Launchpad #239636: Ensure that HEAD requests lock an empty body
for NotFound errors.
......
......@@ -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,
......
......@@ -532,7 +532,8 @@ class RoleManager(ExtensionClass.Base, PermissionMapping.RoleManager):
def possible_permissions(self):
d={}
for p in Products.__ac_permissions__:
Products_permissions = getattr(Products, '__ac_permissions__', ())
for p in Products_permissions:
d[p[0]]=1
for p in self.aq_acquire('_getProductRegistryData')('ac_permissions'):
d[p[0]]=1
......
......@@ -236,7 +236,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')
)
......
......@@ -10,4 +10,9 @@
# FOR A PARTICULAR PURPOSE
#
##############################################################################
__ac_permissions__=()
# See http://peak.telecommunity.com/DevCenter/setuptools#namespace-packages
try:
__import__('pkg_resources').declare_namespace(__name__)
except ImportError:
from pkgutil import extend_path
__path__ = extend_path(__path__, __name__)
......@@ -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)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment