--- 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