[Zope-Checkins] CVS: Zope3/lib/python/Zope/App/Security/tests - testZSP.py:1.1.2.8
Anthony Baxter
anthony@interlink.com.au
Sat, 9 Feb 2002 17:54:30 -0500
Update of /cvs-repository/Zope3/lib/python/Zope/App/Security/tests
In directory cvs.zope.org:/tmp/cvs-serv16976/tests
Modified Files:
Tag: Zope-3x-branch
testZSP.py
Log Message:
Dour (non-playful) security now works. Woo-hoo.
Note that a couple of tests in testZSP are still commented out, as
they assume that principals, roles or permissions are strings. Naughty!
=== Zope3/lib/python/Zope/App/Security/tests/testZSP.py 1.1.2.7 => 1.1.2.8 ===
class Test( unittest.TestCase ):
+ def tearDown(self):
+ _clear()
+
def setUp(self):
_clear()
- principalRegistry.definePrincipal('jim', 'Jim', 'Jim Fulton',
+ jim = principalRegistry.definePrincipal('jim', 'Jim', 'Jim Fulton',
'jim', '123')
- principalRegistry.definePrincipal('tim', 'Tim', 'Tim Peters',
+ tim = principalRegistry.definePrincipal('tim', 'Tim', 'Tim Peters',
'tim', '456')
+ anon = principalRegistry.definePrincipal('Anonymous', 'Anonymous')
principalRegistry.defineDefaultPrincipal(
'unknown', 'Unknown', 'Nothing is known about this principal')
- permissionRegistry.definePermission('read', 'Read', 'Read something')
- permissionRegistry.definePermission(
+ read = permissionRegistry.definePermission(
+ 'read', 'Read', 'Read something')
+ write = permissionRegistry.definePermission(
'write', 'Write', 'Write something')
+ peon = roleRegistry.defineRole('Peon', 'Site Peon')
+ rolePermissionManager.grantPermissionToRole( read, peon.getId() )
- self.peon = roleRegistry.defineRole('Peon', 'Site Peon')
+ manager = roleRegistry.defineRole('Manager', 'Site Manager')
rolePermissionManager.grantPermissionToRole(
- 'read', self.peon.getId())
-
- self.manager = roleRegistry.defineRole('Manager', 'Site Manager')
+ read, manager.getId())
rolePermissionManager.grantPermissionToRole(
- 'read', self.manager.getId())
- rolePermissionManager.grantPermissionToRole(
- 'write', self.manager.getId())
+ write, manager.getId())
- principalRoleManager.assignRoleToPrincipal(self.peon.getId(), 'jim')
- principalRoleManager.assignRoleToPrincipal(self.manager.getId(), 'tim')
+ principalRoleManager.assignRoleToPrincipal(peon.getId(), jim)
+ principalRoleManager.assignRoleToPrincipal(manager.getId(), tim)
self.policy = self._makePolicy()
@@ -86,31 +89,43 @@
from Zope.App.Security.ZopeSecurityPolicy import ZopeSecurityPolicy
- def offtestGlobalCheckPermission(self):
- # How does this help us? Do we need non-playful security anymore?
+ def testGlobalCheckPermission(self):
+ # test dour security
+ read = permissionRegistry.getPermission('read')
+ write = permissionRegistry.getPermission('write')
+
+ tim = principalRegistry.getPrincipal('tim')
+ jim = principalRegistry.getPrincipal('jim')
+
self.failUnless(
- self.policy.checkPermission('read', None, Context('jim')))
+ self.policy.checkPermission(read, None, Context(jim)))
self.failUnless(
- self.policy.checkPermission('read', None, Context('tim')))
+ self.policy.checkPermission(read, None, Context(tim)))
self.failUnless(
- self.policy.checkPermission('write', None, Context('tim')))
+ self.policy.checkPermission(write, None, Context(tim)))
self.failIf(self.policy.checkPermission(
- 'read', None, Context('unknown')))
+ read, None, Context('unknown')))
self.failIf(self.policy.checkPermission(
- 'write', None, Context('unknown')))
+ write, None, Context('unknown')))
- rolePermissionManager.grantPermissionToRole('read', 'Anonymous')
+ unknown = principalRegistry.getPrincipal('unknown')
+ self.failIf(
+ self.policy.checkPermission(read, None, Context(unknown)))
+
+ anon = principalRegistry.getPrincipal('Anonymous')
+ rolePermissionManager.grantPermissionToRole(read, anon)
self.failUnless(
- self.policy.checkPermission('read', None, Context('unknown')))
+ self.policy.checkPermission(read, None, Context('unknown')))
- principalPermissionManager.grantPermissionToPrincipal('write', 'jim')
+ principalPermissionManager.grantPermissionToPrincipal(write, jim)
self.failUnless(
- self.policy.checkPermission('write', None, Context('jim')))
+ self.policy.checkPermission(write, None, Context(jim)))
def offtestPlayfulRolePermissions(self):
- # This is currently busticated
+ # This is currently busticated. It thinks roles and permissions and
+ # principals are strings, they are NOT.
permissionRegistry.definePermission('test', 'Test', '')
provideAdapter(ITest, IRolePermissionManager, Adaptor)
provideAdapter(ITest, IPrincipalRoleManager, \
@@ -170,7 +185,8 @@
self.policy.validate,
'x', Protected('write'), Context('unknown'))
- rolePermissionManager.grantPermissionToRole('read', 'Anonymous')
+ anon = principalRegistry.getPrincipal('Anonymous')
+ rolePermissionManager.grantPermissionToRole('read', anon)
self.policy.validate('_', Protected('read'), Context('unknown'))