[Zope-Checkins] CVS: Zope3/lib/python/Zope/Security - Checker.py:1.1.2.7

Jim Fulton jim@zope.com
Mon, 22 Apr 2002 19:11:44 -0400


Update of /cvs-repository/Zope3/lib/python/Zope/Security
In directory cvs.zope.org:/tmp/cvs-serv20113/lib/python/Zope/Security

Modified Files:
      Tag: SecurityProxy-branch
	Checker.py 
Log Message:

Changed the checker to make some attributes:
'__lt__', '__le__', '__eq__', '__gt__', '__ge__', '__ne__',
'__hash__', '__nonzero__', '__class__', and '__implements__'
always public.



=== Zope3/lib/python/Zope/Security/Checker.py 1.1.2.6 => 1.1.2.7 ===
             else:
                 raise Unauthorized(name=name)
+        elif name in _always_available:
+            return
 
         raise Forbidden(name)
 
@@ -213,13 +215,19 @@
 
     return checker
 
-_callableChecker = NamesChecker(['__str__', '__repr__', '__hash__',
-                                 '__call__'])
-_typeChecker = NamesChecker(['__str__', '__repr__', '__hash__'])
-
 def _moduleChecker(module):
     return _checkers.get(module, _typeChecker)
 
+
+
+_always_available = ['__lt__', '__le__', '__eq__',
+                     '__gt__', '__ge__', '__ne__',
+                     '__hash__', '__nonzero__',
+                     '__class__', '__implements__',
+                     ]
+
+_callableChecker = NamesChecker(['__str__', '__repr__', '__call__'])
+_typeChecker = NamesChecker(['__str__', '__repr__'])
 
 _default_checkers = {
     dict: NamesChecker(['__getitem__', 'get', 'has_key', '__len__',