[Zope-Checkins] CVS: Zope/lib/python/AccessControl - SecurityInfo.py:1.17.12.1

Jim Fulton cvs-admin at zope.org
Sat Nov 15 07:12:04 EST 2003


Update of /cvs-repository/Zope/lib/python/AccessControl
In directory cvs.zope.org:/tmp/cvs-serv24381/lib/python/AccessControl

Modified Files:
      Tag: zodb33-devel-branch
	SecurityInfo.py 
Log Message:
Changed class modification code to use setattr rather than class
dictionary manipulation, since new-style class dictionaries are
immutable


=== Zope/lib/python/AccessControl/SecurityInfo.py 1.17 => 1.17.12.1 ===
--- Zope/lib/python/AccessControl/SecurityInfo.py:1.17	Wed Jul  9 12:24:57 2003
+++ Zope/lib/python/AccessControl/SecurityInfo.py	Sat Nov 15 07:11:32 2003
@@ -162,7 +162,7 @@
         ac_permissions = {}
         for name, access in self.names.items():
             if access in (ACCESS_PRIVATE, ACCESS_PUBLIC, ACCESS_NONE):
-                dict['%s__roles__' % name] = access
+                setattr(classobj, '%s__roles__' % name, access)
             else:
                 if not ac_permissions.has_key(access):
                     ac_permissions[access] = []
@@ -182,12 +182,13 @@
             else:
                 entry = (permission_name, tuple(names))
             __ac_permissions__.append(entry)
-        dict['__ac_permissions__'] = tuple(__ac_permissions__)
+        setattr(classobj, '__ac_permissions__', tuple(__ac_permissions__))
 
         # Take care of default attribute access policy
         access = getattr(self, 'access', _marker)
         if access is not _marker:
-            dict['__allow_access_to_unprotected_subobjects__'] = access
+            setattr(classobj, '__allow_access_to_unprotected_subobjects__',
+                    access)
 
         if getattr(self, '_warnings', None):
             LOG('SecurityInfo', WARNING, 'Class "%s" had conflicting '




More information about the Zope-Checkins mailing list