[Zope-Checkins] CVS: Zope3/lib/python/Zope/App/Security - ZopeSecurityPolicy.py:1.1.2.21 security.zcml:1.1.2.2

Steve Alexander steve@cat-box.net
Fri, 1 Mar 2002 06:53:06 -0500


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

Modified Files:
      Tag: Zope-3x-branch
	ZopeSecurityPolicy.py security.zcml 
Log Message:
More minimal changes to get ZMI working again.
This time, changed ZopeSecurityPolicy.validate to treat a None value
as if it had Zope.Public permission.
Also, added some more declarations to security.zcml.
Also, I think I've found a bug in stating interfaces in zcml protectClass
declarations. Stating IRegisteredObject works where stating IPermission
doesn't, even though IPermission specialises IRegisteredObject...


=== Zope3/lib/python/Zope/App/Security/ZopeSecurityPolicy.py 1.1.2.20 => 1.1.2.21 ===
 from Zope.App.Security.Settings import Allow, Deny, Assign, Remove, Unset
 
-from types import StringTypes, ListType, IntType, MethodType
+from types import StringTypes, ListType, IntType, MethodType, NoneType
 
 getPermissionsForPrincipal = \
                 principalPermissionManager.getPermissionsForPrincipal
@@ -93,7 +93,8 @@
             #      This is still a hack, and still incomplete, and just here
             #      to get the ZMI working.
             
-            if (isinstance(value, (ListType, StringTypes, IntType)) or 
+            if (isinstance(value, (ListType, StringTypes, IntType, NoneType))
+                or 
                 getattr(value,'__allow_access_to_unprotected_subobjects__',0)):
                 permission = 'Zope.Public'
             elif (isinstance(value, MethodType) and 


=== Zope3/lib/python/Zope/App/Security/security.zcml 1.1.2.1 => 1.1.2.2 ===
    methods="index, roles, permissions, permissionRoles, action,
    manage_permissionForm, update_permission,
-   manage_roleForm, update_role" />
+   manage_roleForm, update_role, permissionForID" />
 
 <security:protectClass
    name="Zope.App.Security.RolePermissionView.PermissionRoles."
    permission_id="Zope.Security"
-   methods="roles" 
-   interface="Zope.App.Security.IPermission." />
+   methods="roles, rolesInfo"
+   interface="Zope.App.Security.IRegisteredObject." />
 
 <browser:view name="RolePermissionsManagement"
               for="Zope.App.Security.IAttributeRolePermissionManageable."
@@ -70,6 +70,12 @@
          provides="Zope.App.Security.IPrincipalRoleManager."
          />
          
+
+<!-- protect Roles and Permissions -->
+<security:protectClass name="Zope.App.Security.RoleRegistry.Role"
+                       interface="Zope.App.Security.IRegisteredObject."
+                       permission_id="Zope.Public"/>
+
 
 
 </zopeConfigure>