[Zope-Checkins] CVS: Zope3/lib/python/Zope/App/Security/tests - testZSP.py:1.1.2.8.2.4
Casey Duncan
casey_duncan@yahoo.com
Mon, 11 Feb 2002 17:03:20 -0500
Update of /cvs-repository/Zope3/lib/python/Zope/App/Security/tests
In directory cvs.zope.org:/tmp/cvs-serv27523/tests
Modified Files:
Tag: Zope-3x-security_defactor-branch
testZSP.py
Log Message:
Fixed security behavior on cascades between placeful and global settings for principal permissions and roles. Added tests for this behavior. Fixed permission adapter APIs to reflect the use of ids instead of objects for security settings.
=== Zope3/lib/python/Zope/App/Security/tests/testZSP.py 1.1.2.8.2.3 => 1.1.2.8.2.4 ===
self.failUnless(self.policy.checkPermission(
test, ob, Context(self.jim)))
+ # Make sure global principal permissions override placeful role perms
+ principalPermissionManager.denyPermissionToPrincipal(
+ test, self.jim)
+ self.failIf(self.policy.checkPermission(
+ test, ob, Context(self.jim)))
+ principalPermissionManager.unsetPermissionForPrincipal(
+ test, self.jim)
def testPlayfulPrinciplePermissions(self):
APPM = AttributePrincipalPermissionManager
@@ -193,6 +200,16 @@
APPM(ob3).unsetPermissionForPrincipal(test, self.jim)
self.failIf(self.policy.checkPermission(test, ob,
Context(self.jim)))
+ # make sure placeful principal permissions override global ones
+ APPM(ob).grantPermissionToPrincipal(test, self.tim)
+ principalPermissionManager.denyPermissionToPrincipal(
+ test, self.tim)
+ self.failUnless(self.policy.checkPermission(test, ob,
+ Context(self.tim)))
+ principalPermissionManager.unsetPermissionForPrincipal(
+ test, self.tim)
+
+
def test_validate(self):
@@ -228,28 +245,6 @@
def __init__(self):
self._roles = { 'test' : {} }
self._permissions = { 'Manager' : {} , 'Peon' : {} }
-
-class Adaptor:
- __implements__ = IRolePermissionManager
-
- def __init__(self, context):
- self._context = context
-
- def getPermissionsForRole(self, role):
- return self._context._permissions.get(role, {}).keys()
-
- def getRolesForPermission(self, permission):
- return self._context._roles.get(permission, {}).keys()
-
- def getPermissionAcquired(self, permission):
- return 1
-
- def grantPermissionToRole(self, permission, role):
- self._context._permissions[role][permission] = 1
- self._context._roles[permission][role] = 1
-
- def setPermissionAcquired(self, permission, flag):
- raise TypeError
def test_suite():
loader=unittest.TestLoader()