[Zope-Checkins] CVS: Zope/lib/python/AccessControl - Owned.py:1.18.4.4 PermissionRole.py:1.16.4.4 SecurityInfo.py:1.15.4.1 User.py:1.170.4.5 ZopeSecurityPolicy.py:1.20.2.4
Chris McDonough
chrism@zope.com
Sun, 24 Nov 2002 18:29:54 -0500
Update of /cvs-repository/Zope/lib/python/AccessControl
In directory cvs.zope.org:/tmp/cvs-serv7151
Modified Files:
Tag: chrism-install-branch
Owned.py PermissionRole.py SecurityInfo.py User.py
ZopeSecurityPolicy.py
Log Message:
Merge with head.
=== Zope/lib/python/AccessControl/Owned.py 1.18.4.3 => 1.18.4.4 ===
=== Zope/lib/python/AccessControl/PermissionRole.py 1.16.4.3 => 1.16.4.4 ===
=== Zope/lib/python/AccessControl/SecurityInfo.py 1.15 => 1.15.4.1 ===
--- Zope/lib/python/AccessControl/SecurityInfo.py:1.15 Wed Aug 14 17:29:07 2002
+++ Zope/lib/python/AccessControl/SecurityInfo.py Sun Nov 24 18:29:53 2002
@@ -198,6 +198,7 @@
access = 0
_moduleSecurity = {}
+_appliedModuleSecurity = {}
def secureModule(mname, *imp):
modsec = _moduleSecurity.get(mname, None)
@@ -209,12 +210,24 @@
apply(__import__, (mname,) + tuple(imp))
module = sys.modules[mname]
modsec.apply(module.__dict__)
+ _appliedModuleSecurity[mname] = modsec
return module
def ModuleSecurityInfo(module_name=None):
if module_name is not None:
modsec = _moduleSecurity.get(module_name, None)
if modsec is not None:
+ return modsec
+ modsec = _appliedModuleSecurity.get(module_name, None)
+ if modsec is not None:
+ # Move security info back to to-apply dict (needed for product
+ # refresh). Also invoke this check for parent packages already
+ # applied
+ del _appliedModuleSecurity[module_name]
+ _moduleSecurity[module_name] = modsec
+ dot = module_name.rfind('.')
+ if dot > 0:
+ ModuleSecurityInfo(module_name[:dot])
return modsec
dot = module_name.rfind('.')
if dot > 0:
=== Zope/lib/python/AccessControl/User.py 1.170.4.4 => 1.170.4.5 ===
=== Zope/lib/python/AccessControl/ZopeSecurityPolicy.py 1.20.2.3 => 1.20.2.4 ===