[Zope-Checkins] CVS: Products/PythonScripts - Utility.py:1.4.8.1 module_access_examples.py:1.1.102.1

Evan Simpson evan@zope.com
Wed, 2 Jan 2002 11:20:49 -0500


Update of /cvs-repository/Products/PythonScripts
In directory cvs.zope.org:/tmp/cvs-serv28972/Products/PythonScripts

Modified Files:
      Tag: evan-modsec_fix-branch
	Utility.py module_access_examples.py 
Log Message:
Security cleanup.  Make multiple module security declarations play nicely
together, move utility functions into AccessControl, add tests.  Added the
ability to declare simple security for types.



=== Products/PythonScripts/Utility.py 1.4 => 1.4.8.1 ===
 __version__='$Revision$'[11:-2]
 
-from AccessControl import ModuleSecurityInfo, ClassSecurityInfo
-from Globals import InitializeClass
-import string
-
-def allow_module(module_name):
-    """Allow a module and all its contents to be used from a
-    restricted Script. The argument module_name may be a simple
-    or dotted module or package name. Note that if a package
-    path is given, all modules in the path will be available."""
-    ModuleSecurityInfo(module_name).setDefaultAccess(1)
-    dot = string.find(module_name, '.')
-    while dot > 0:
-        ModuleSecurityInfo(module_name[:dot]).setDefaultAccess(1)
-        dot = string.find(module_name, '.', dot + 1)
-
-def allow_class(Class):
-    """Allow a class and all of its methods to be used from a
-    restricted Script.  The argument Class must be a class."""
-    Class._security = sec = ClassSecurityInfo()
-    sec.declareObjectPublic()
-    sec.setDefaultAccess(1)
-    sec.apply(Class)
-    InitializeClass(Class)
+# These have been relocated, and should be imported from AccessControl
 
+from AccessControl import allow_module, allow_class


=== Products/PythonScripts/module_access_examples.py 1.1 => 1.1.102.1 ===
 '''
 
-from Products.PythonScripts.Utility import allow_module, allow_class
+from AccessControl import allow_module, allow_class, allow_type
 from AccessControl import ModuleSecurityInfo, ClassSecurityInfo
 from Globals import InitializeClass
 
@@ -42,9 +42,9 @@
 # ModuleSecurityInfo('re').declarePublic('compile', 'findall',
 #   'match', 'search', 'split', 'sub', 'subn', 'error',
 #   'I', 'L', 'M', 'S', 'X')
-# from re import RegexObject, MatchObject
-# allow_class(RegexObject)
-# allow_class(MatchObject)
+# import re
+# allow_type(type(re.compile('')))
+# allow_type(type(re.match('x','x')))
 
 # ModuleSecurityInfo('StringIO').declarePublic('StringIO')