--- CopySupport.py.orig Wed Dec 18 13:08:25 2002 +++ CopySupport.py Fri Dec 19 18:27:05 2003 @@ -23,6 +23,10 @@ from zExceptions import Unauthorized from AccessControl import getSecurityManager +from Globals import InitializeClass +from Acquisition import Implicit +from AccessControl import ClassSecurityInfo + CopyError='Copy Error' _marker=[] @@ -335,7 +339,16 @@ break if mt_permission is not None: - if getSecurityManager().checkPermission( mt_permission, self ): + #if getSecurityManager().checkPermission( mt_permission, self ): + # DM: the following does not take executable security (owner
+ # ship, proxy roles) into account.
+ #if getSecurityManager().checkPermission( mt_permission, self ):
+ class _Proxy(Implicit): + security= ClassSecurityInfo() + _Proxy.security.declareObjectProtected(mt_permission) + InitializeClass(_Proxy) + _proxy= _Proxy().__of__(self) + if getSecurityManager().validate(None,self,None,_proxy): if not validate_src: return # Ensure the user is allowed to access the object on the