Commit 10599248 authored by Tres Seaver's avatar Tres Seaver

Launchpad #245649: the Products package is now a proper "namespace package"

o The rules specified by setuptools for such packages required that there
  be no code in the pacakge __init__.py other than that which sets up the
  namespace.  Adjusted all Zope-internal code which assumed that the
  '__ac_permissions__' tuple would be present unconditionally.
parent 6a43c2e7
......@@ -204,6 +204,9 @@ Zope Changes
Bugs Fixed
- 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
......
......@@ -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,
......
......@@ -255,7 +255,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,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__)
......
......@@ -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