Log message for revision 112388: Move InitializeClass into AccessControl
Changed: U Zope/branches/hannosch-dtml-vs-accesscontrol/src/AccessControl/Owned.py U Zope/branches/hannosch-dtml-vs-accesscontrol/src/AccessControl/PermissionMapping.py U Zope/branches/hannosch-dtml-vs-accesscontrol/src/AccessControl/Role.py U Zope/branches/hannosch-dtml-vs-accesscontrol/src/AccessControl/SecurityInfo.py U Zope/branches/hannosch-dtml-vs-accesscontrol/src/AccessControl/User.py A Zope/branches/hannosch-dtml-vs-accesscontrol/src/AccessControl/class_init.py U Zope/branches/hannosch-dtml-vs-accesscontrol/src/AccessControl/metaconfigure.py U Zope/branches/hannosch-dtml-vs-accesscontrol/src/AccessControl/securitySuite/regressionSecurity.py U Zope/branches/hannosch-dtml-vs-accesscontrol/src/AccessControl/tests/testAcquisition.py U Zope/branches/hannosch-dtml-vs-accesscontrol/src/AccessControl/tests/testBindings.py U Zope/branches/hannosch-dtml-vs-accesscontrol/src/AccessControl/tests/testClassSecurityInfo.py U Zope/branches/hannosch-dtml-vs-accesscontrol/src/AccessControl/tests/testZCML.py U Zope/branches/hannosch-dtml-vs-accesscontrol/src/AccessControl/tests/testZopeGuards.py U Zope/branches/hannosch-dtml-vs-accesscontrol/src/App/class_init.py U Zope/branches/hannosch-dtml-vs-accesscontrol/src/Globals/__init__.py -=- Modified: Zope/branches/hannosch-dtml-vs-accesscontrol/src/AccessControl/Owned.py =================================================================== --- Zope/branches/hannosch-dtml-vs-accesscontrol/src/AccessControl/Owned.py 2010-05-16 19:58:44 UTC (rev 112387) +++ Zope/branches/hannosch-dtml-vs-accesscontrol/src/AccessControl/Owned.py 2010-05-16 20:00:03 UTC (rev 112388) @@ -21,10 +21,10 @@ from Acquisition import aq_inner from Acquisition import aq_parent from App.special_dtml import DTMLFile -from App.class_init import InitializeClass from ExtensionClass import Base from zope.interface import implements +from AccessControl.class_init import InitializeClass from AccessControl.interfaces import IOwned from AccessControl.Permissions import view_management_screens from AccessControl.Permissions import take_ownership Modified: Zope/branches/hannosch-dtml-vs-accesscontrol/src/AccessControl/PermissionMapping.py =================================================================== --- Zope/branches/hannosch-dtml-vs-accesscontrol/src/AccessControl/PermissionMapping.py 2010-05-16 19:58:44 UTC (rev 112387) +++ Zope/branches/hannosch-dtml-vs-accesscontrol/src/AccessControl/PermissionMapping.py 2010-05-16 20:00:03 UTC (rev 112388) @@ -22,10 +22,10 @@ from cgi import escape from Acquisition import ImplicitAcquisitionWrapper -from App.class_init import InitializeClass from ExtensionClass import Base from zope.interface import implements +from AccessControl.class_init import InitializeClass from AccessControl.interfaces import IPermissionMappingSupport from AccessControl.Owned import UnownableOwner from AccessControl.Permission import pname Modified: Zope/branches/hannosch-dtml-vs-accesscontrol/src/AccessControl/Role.py =================================================================== --- Zope/branches/hannosch-dtml-vs-accesscontrol/src/AccessControl/Role.py 2010-05-16 19:58:44 UTC (rev 112387) +++ Zope/branches/hannosch-dtml-vs-accesscontrol/src/AccessControl/Role.py 2010-05-16 20:00:03 UTC (rev 112388) @@ -22,13 +22,13 @@ from AccessControl import ClassSecurityInfo from AccessControl.SecurityManagement import newSecurityManager from AccessControl.Permissions import change_permissions -from App.class_init import InitializeClass from App.Dialogs import MessageDialog from App.special_dtml import DTMLFile from ExtensionClass import Base from PermissionMapping import RoleManager from zope.interface import implements +from AccessControl.class_init import InitializeClass from AccessControl.interfaces import IRoleManager from AccessControl.Permission import Permission from AccessControl.requestmethod import requestmethod Modified: Zope/branches/hannosch-dtml-vs-accesscontrol/src/AccessControl/SecurityInfo.py =================================================================== --- Zope/branches/hannosch-dtml-vs-accesscontrol/src/AccessControl/SecurityInfo.py 2010-05-16 19:58:44 UTC (rev 112387) +++ Zope/branches/hannosch-dtml-vs-accesscontrol/src/AccessControl/SecurityInfo.py 2010-05-16 20:00:03 UTC (rev 112388) @@ -311,5 +311,5 @@ sec.declareObjectPublic() sec.setDefaultAccess(1) sec.apply(Class) - from App.class_init import InitializeClass + from AccessControl.class_init import InitializeClass InitializeClass(Class) Modified: Zope/branches/hannosch-dtml-vs-accesscontrol/src/AccessControl/User.py =================================================================== --- Zope/branches/hannosch-dtml-vs-accesscontrol/src/AccessControl/User.py 2010-05-16 19:58:44 UTC (rev 112387) +++ Zope/branches/hannosch-dtml-vs-accesscontrol/src/AccessControl/User.py 2010-05-16 20:00:03 UTC (rev 112388) @@ -24,12 +24,12 @@ from Acquisition import aq_parent from Acquisition import aq_inContextOf from Acquisition import Implicit -from App.class_init import InitializeClass from App.Management import Navigation from App.Management import Tabs from App.special_dtml import DTMLFile from App.Dialogs import MessageDialog from AccessControl import ClassSecurityInfo +from AccessControl.class_init import InitializeClass from AccessControl.Permissions import manage_users as ManageUsers from OFS.SimpleItem import Item from Persistence import Persistent Copied: Zope/branches/hannosch-dtml-vs-accesscontrol/src/AccessControl/class_init.py (from rev 112374, Zope/branches/hannosch-dtml-vs-accesscontrol/src/App/class_init.py) =================================================================== --- Zope/branches/hannosch-dtml-vs-accesscontrol/src/AccessControl/class_init.py (rev 0) +++ Zope/branches/hannosch-dtml-vs-accesscontrol/src/AccessControl/class_init.py 2010-05-16 20:00:03 UTC (rev 112388) @@ -0,0 +1,89 @@ +############################################################################## +# +# Copyright (c) 2002 Zope Foundation and Contributors. +# +# This software is subject to the provisions of the Zope Public License, +# Version 2.1 (ZPL). A copy of the ZPL should accompany this distribution. +# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED +# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS +# FOR A PARTICULAR PURPOSE. +# +############################################################################## +"""Class initialization. + +$Id$ +""" + +import logging + +from AccessControl.Permission import ApplicationDefaultPermissions # BBB + +def InitializeClass(self): + from AccessControl.Permission import registerPermissions + from AccessControl.PermissionRole import PermissionRole + dict=self.__dict__ + have=dict.has_key + ft=type(InitializeClass) + dict_items=dict.items() + + for name, v in dict_items: + if getattr(v, '_need__name__', 0): + d = v.__dict__ + oldname = d.get('__name__', '') + if d.get('_implicit__name__', 0): + # Already supplied a name. + if name != oldname: + # Tried to implicitly assign a different name! + try: classname = '%s.%s' % ( + self.__module__, self.__name__) + except AttributeError: classname = `self` + logging.getLogger("Init").warning( + 'Ambiguous name for method of %s: %r != %r', + classname, d['__name__'], name) + else: + # Supply a name implicitly so that the method can + # find the security assertions on its container. + v._implicit__name__ = 1 + v.__name__ = name + if name=='manage' or name[:7]=='manage_': + name=name+'__roles__' + if not have(name): + setattr(self, name, ('Manager',)) + elif name=='manage' or name[:7]=='manage_' and type(v) is ft: + name=name+'__roles__' + if not have(name): + setattr(self, name, ('Manager',)) + + # Look for a SecurityInfo object on the class. If found, call its + # apply() method to generate __ac_permissions__ for the class. We + # delete the SecurityInfo from the class dict after it has been + # applied out of paranoia. + for key, value in dict_items: + if hasattr(value, '__security_info__'): + security_info=value + security_info.apply(self) + delattr(self, key) + break + + if self.__dict__.has_key('__ac_permissions__'): + registerPermissions(self.__ac_permissions__) + for acp in self.__ac_permissions__: + pname, mnames = acp[:2] + if len(acp) > 2: + roles = acp[2] + pr = PermissionRole(pname, roles) + else: + pr = PermissionRole(pname) + for mname in mnames: + setattr(self, mname+'__roles__', pr) + if (mname and mname not in ('context', 'request') and + not hasattr(self, mname)): + # don't complain about context or request, as they are + # frequently not available as class attributes + logging.getLogger("Init").warning( + "Class %s.%s has a security declaration for " + "nonexistent method %r", self.__module__, + self.__name__, mname) + +default__class_init__ = InitializeClass # BBB: old name Modified: Zope/branches/hannosch-dtml-vs-accesscontrol/src/AccessControl/metaconfigure.py =================================================================== --- Zope/branches/hannosch-dtml-vs-accesscontrol/src/AccessControl/metaconfigure.py 2010-05-16 19:58:44 UTC (rev 112387) +++ Zope/branches/hannosch-dtml-vs-accesscontrol/src/AccessControl/metaconfigure.py 2010-05-16 20:00:03 UTC (rev 112388) @@ -14,8 +14,8 @@ import warnings from zope.security import metaconfigure +from AccessControl.class_init import InitializeClass from AccessControl.security import protectName -from App.class_init import InitializeClass class ClassDirective(metaconfigure.ClassDirective): Modified: Zope/branches/hannosch-dtml-vs-accesscontrol/src/AccessControl/securitySuite/regressionSecurity.py =================================================================== --- Zope/branches/hannosch-dtml-vs-accesscontrol/src/AccessControl/securitySuite/regressionSecurity.py 2010-05-16 19:58:44 UTC (rev 112387) +++ Zope/branches/hannosch-dtml-vs-accesscontrol/src/AccessControl/securitySuite/regressionSecurity.py 2010-05-16 20:00:03 UTC (rev 112388) @@ -15,15 +15,14 @@ import unittest +from AccessControl.class_init import InitializeClass from AccessControl.SecurityInfo import ClassSecurityInfo from AccessControl.SecurityManagement import getSecurityManager from AccessControl.User import nobody from AccessControl.securitySuite import SecurityBase from OFS.Folder import Folder from OFS.SimpleItem import SimpleItem -from App.class_init import InitializeClass - # let's define some permissions first MAGIC_PERMISSION1 = 'Magic Permission 1' Modified: Zope/branches/hannosch-dtml-vs-accesscontrol/src/AccessControl/tests/testAcquisition.py =================================================================== --- Zope/branches/hannosch-dtml-vs-accesscontrol/src/AccessControl/tests/testAcquisition.py 2010-05-16 19:58:44 UTC (rev 112387) +++ Zope/branches/hannosch-dtml-vs-accesscontrol/src/AccessControl/tests/testAcquisition.py 2010-05-16 20:00:03 UTC (rev 112388) @@ -25,8 +25,8 @@ Zope2.startup() from OFS.SimpleItem import SimpleItem -from App.class_init import InitializeClass from AccessControl import ClassSecurityInfo +from AccessControl.class_init import InitializeClass from AccessControl.SecurityManagement import newSecurityManager from AccessControl.SecurityManagement import noSecurityManager from AccessControl.Permissions import view, view_management_screens Modified: Zope/branches/hannosch-dtml-vs-accesscontrol/src/AccessControl/tests/testBindings.py =================================================================== --- Zope/branches/hannosch-dtml-vs-accesscontrol/src/AccessControl/tests/testBindings.py 2010-05-16 19:58:44 UTC (rev 112387) +++ Zope/branches/hannosch-dtml-vs-accesscontrol/src/AccessControl/tests/testBindings.py 2010-05-16 20:00:03 UTC (rev 112388) @@ -21,7 +21,7 @@ import transaction from Acquisition import Implicit from AccessControl import ClassSecurityInfo -from App.class_init import InitializeClass +from AccessControl.class_init import InitializeClass from OFS.ObjectManager import ObjectManager from OFS.Folder import Folder Modified: Zope/branches/hannosch-dtml-vs-accesscontrol/src/AccessControl/tests/testClassSecurityInfo.py =================================================================== --- Zope/branches/hannosch-dtml-vs-accesscontrol/src/AccessControl/tests/testClassSecurityInfo.py 2010-05-16 19:58:44 UTC (rev 112387) +++ Zope/branches/hannosch-dtml-vs-accesscontrol/src/AccessControl/tests/testClassSecurityInfo.py 2010-05-16 20:00:03 UTC (rev 112388) @@ -28,7 +28,7 @@ # Test setting default roles for permissions. - from App.class_init import InitializeClass + from AccessControl.class_init import InitializeClass from ExtensionClass import Base ClassSecurityInfo = self._getTargetClass() Modified: Zope/branches/hannosch-dtml-vs-accesscontrol/src/AccessControl/tests/testZCML.py =================================================================== --- Zope/branches/hannosch-dtml-vs-accesscontrol/src/AccessControl/tests/testZCML.py 2010-05-16 19:58:44 UTC (rev 112387) +++ Zope/branches/hannosch-dtml-vs-accesscontrol/src/AccessControl/tests/testZCML.py 2010-05-16 20:00:03 UTC (rev 112388) @@ -109,7 +109,7 @@ >>> from zope.configuration.xmlconfig import xmlconfig >>> xmlconfig(configure_zcml) - >>> from App.class_init import InitializeClass + >>> from AccessControl.class_init import InitializeClass >>> InitializeClass(Dummy2) Now we compare their access controls: Modified: Zope/branches/hannosch-dtml-vs-accesscontrol/src/AccessControl/tests/testZopeGuards.py =================================================================== --- Zope/branches/hannosch-dtml-vs-accesscontrol/src/AccessControl/tests/testZopeGuards.py 2010-05-16 19:58:44 UTC (rev 112387) +++ Zope/branches/hannosch-dtml-vs-accesscontrol/src/AccessControl/tests/testZopeGuards.py 2010-05-16 20:00:03 UTC (rev 112388) @@ -583,9 +583,9 @@ def _getProtectedBaseClass(self): + from AccessControl.class_init import InitializeClass from AccessControl.SecurityInfo import ClassSecurityInfo from ExtensionClass import Base - from App.class_init import InitializeClass global _ProtectedBase if _ProtectedBase is None: Modified: Zope/branches/hannosch-dtml-vs-accesscontrol/src/App/class_init.py =================================================================== --- Zope/branches/hannosch-dtml-vs-accesscontrol/src/App/class_init.py 2010-05-16 19:58:44 UTC (rev 112387) +++ Zope/branches/hannosch-dtml-vs-accesscontrol/src/App/class_init.py 2010-05-16 20:00:03 UTC (rev 112388) @@ -11,79 +11,9 @@ # ############################################################################## """Class initialization. - -$Id$ """ -import logging - -from AccessControl.Permission import ApplicationDefaultPermissions # BBB - -def InitializeClass(self): - from AccessControl.Permission import registerPermissions - from AccessControl.PermissionRole import PermissionRole - dict=self.__dict__ - have=dict.has_key - ft=type(InitializeClass) - dict_items=dict.items() - - for name, v in dict_items: - if getattr(v, '_need__name__', 0): - d = v.__dict__ - oldname = d.get('__name__', '') - if d.get('_implicit__name__', 0): - # Already supplied a name. - if name != oldname: - # Tried to implicitly assign a different name! - try: classname = '%s.%s' % ( - self.__module__, self.__name__) - except AttributeError: classname = `self` - logging.getLogger("Init").warning( - 'Ambiguous name for method of %s: %r != %r', - classname, d['__name__'], name) - else: - # Supply a name implicitly so that the method can - # find the security assertions on its container. - v._implicit__name__ = 1 - v.__name__ = name - if name=='manage' or name[:7]=='manage_': - name=name+'__roles__' - if not have(name): - setattr(self, name, ('Manager',)) - elif name=='manage' or name[:7]=='manage_' and type(v) is ft: - name=name+'__roles__' - if not have(name): - setattr(self, name, ('Manager',)) - - # Look for a SecurityInfo object on the class. If found, call its - # apply() method to generate __ac_permissions__ for the class. We - # delete the SecurityInfo from the class dict after it has been - # applied out of paranoia. - for key, value in dict_items: - if hasattr(value, '__security_info__'): - security_info=value - security_info.apply(self) - delattr(self, key) - break - - if self.__dict__.has_key('__ac_permissions__'): - registerPermissions(self.__ac_permissions__) - for acp in self.__ac_permissions__: - pname, mnames = acp[:2] - if len(acp) > 2: - roles = acp[2] - pr = PermissionRole(pname, roles) - else: - pr = PermissionRole(pname) - for mname in mnames: - setattr(self, mname+'__roles__', pr) - if (mname and mname not in ('context', 'request') and - not hasattr(self, mname)): - # don't complain about context or request, as they are - # frequently not available as class attributes - logging.getLogger("Init").warning( - "Class %s.%s has a security declaration for " - "nonexistent method %r", self.__module__, - self.__name__, mname) - +# BBB +from AccessControl.Permission import ApplicationDefaultPermissions +from AccessControl.class_init import InitializeClass default__class_init__ = InitializeClass # BBB: old name Modified: Zope/branches/hannosch-dtml-vs-accesscontrol/src/Globals/__init__.py =================================================================== --- Zope/branches/hannosch-dtml-vs-accesscontrol/src/Globals/__init__.py 2010-05-16 19:58:44 UTC (rev 112387) +++ Zope/branches/hannosch-dtml-vs-accesscontrol/src/Globals/__init__.py 2010-05-16 20:00:03 UTC (rev 112388) @@ -34,8 +34,8 @@ PersistentMapping = 'Persistence:PersistentMapping', ) -deprecated("import from App.class_init instead", - InitializeClass = 'App.class_init:InitializeClass', +deprecated("import from AccessControl.class_init instead", + InitializeClass = 'AccessControl.class_init:InitializeClass', ) deprecated("import from AccessControl.Permission instead", _______________________________________________ Zope-Checkins maillist - Zope-Checkins@zope.org https://mail.zope.org/mailman/listinfo/zope-checkins