[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>