diff test/test_security.py @ 905:502a5ae11cc5

Very close now. The cgi and mailgw now use the new security API. The two templates have been migrated to that setup. Lots of unit tests. Still some issue in the web form for editing Roles assigned to users.
author Richard Jones <richard@users.sourceforge.net>
date Fri, 26 Jul 2002 08:27:00 +0000
parents b0d3d3535998
children ef9c759c243e
line wrap: on
line diff
--- a/test/test_security.py	Thu Jul 25 07:53:44 2002 +0000
+++ b/test/test_security.py	Fri Jul 26 08:27:00 2002 +0000
@@ -18,7 +18,7 @@
 # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
 # SOFTWARE.
 
-# $Id: test_security.py,v 1.1 2002-07-25 07:14:06 richard Exp $
+# $Id: test_security.py,v 1.2 2002-07-26 08:27:00 richard Exp $
 
 import os, unittest, shutil
 
@@ -48,31 +48,42 @@
         ei = self.db.security.addPermission(name="Edit", klass="issue",
                         description="User is allowed to edit issues")
         self.db.security.addPermissionToRole('User', ei)
-        ai = self.db.security.addPermission(name="Assign", klass="issue",
-                        description="User may be assigned to issues")
+        ai = self.db.security.addPermission(name="View", klass="issue",
+                        description="User is allowed to access issues")
         self.db.security.addPermissionToRole('User', ai)
 
+    def testGetPermission(self):
+        self.db.security.getPermission('Edit')
+        self.db.security.getPermission('View')
+        self.assertRaises(ValueError, self.db.security.getPermission, 'x')
+        self.assertRaises(ValueError, self.db.security.getPermission, 'Edit',
+            'fubar')
+        ei = self.db.security.addPermission(name="Edit", klass="issue",
+                        description="User is allowed to edit issues")
+        self.db.security.getPermission('Edit', 'issue')
+        ai = self.db.security.addPermission(name="View", klass="issue",
+                        description="User is allowed to access issues")
+        self.db.security.getPermission('View', 'issue')
+
     def testDBinit(self):
-        r = str(self.db.role.lookup('Admin'))
-        self.db.user.create(username="admin", roles=[r])
-        r = str(self.db.role.lookup('User'))
-        self.db.user.create(username="anonymous", roles=[r])
+        self.db.user.create(username="admin", roles='Admin')
+        self.db.user.create(username="anonymous", roles='User')
 
-    def testAccess(self):
+    def testAccessControls(self):
         self.testDBinit()
         self.testInitialiseSecurity()
 
         # test class-level access
         userid = self.db.user.lookup('admin')
-        self.assertEquals(self.db.security.hasClassPermission('issue',
-            'Edit', userid), 1)
-        self.assertEquals(self.db.security.hasClassPermission('user',
-            'Edit', userid), 1)
+        self.assertEquals(self.db.security.hasPermission('Edit', userid,
+            'issue'), 1)
+        self.assertEquals(self.db.security.hasPermission('Edit', userid,
+            'user'), 1)
         userid = self.db.user.lookup('anonymous')
-        self.assertEquals(self.db.security.hasClassPermission('issue',
-            'Edit', userid), 1)
-        self.assertEquals(self.db.security.hasClassPermission('user',
-            'Edit', userid), 0)
+        self.assertEquals(self.db.security.hasPermission('Edit', userid,
+            'issue'), 1)
+        self.assertEquals(self.db.security.hasPermission('Edit', userid,
+            'user'), 0)
 
         # test node-level access
         issueid = self.db.issue.create(title='foo', assignedto='admin')
@@ -91,6 +102,14 @@
 
 #
 # $Log: not supported by cvs2svn $
+# Revision 1.1  2002/07/25 07:14:06  richard
+# Bugger it. Here's the current shape of the new security implementation.
+# Still to do:
+#  . call the security funcs from cgi and mailgw
+#  . change shipped templates to include correct initialisation and remove
+#    the old config vars
+# ... that seems like a lot. The bulk of the work has been done though. Honest :)
+#
 # Revision 1.1  2002/07/10 06:40:01  richard
 # ehem, forgot to add
 #

Roundup Issue Tracker: http://roundup-tracker.org/