[Erp5-report] r24652 - /erp5/trunk/products/ERP5Type/tests/testERP5Type.py

nobody at svn.erp5.org nobody at svn.erp5.org
Fri Nov 21 10:57:08 CET 2008


Author: jerome
Date: Fri Nov 21 10:57:07 2008
New Revision: 24652

URL: http://svn.erp5.org?rev=24652&view=rev
Log:
test 'Add permission' for ERP5 Type Information

Modified:
    erp5/trunk/products/ERP5Type/tests/testERP5Type.py

Modified: erp5/trunk/products/ERP5Type/tests/testERP5Type.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Type/tests/testERP5Type.py?rev=24652&r1=24651&r2=24652&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Type/tests/testERP5Type.py [utf8] (original)
+++ erp5/trunk/products/ERP5Type/tests/testERP5Type.py [utf8] Fri Nov 21 10:57:07 2008
@@ -2462,6 +2462,48 @@
         obj._edit(foo_bar="v3")
         self.assertEqual(obj.getFooBar(), "v3")
 
+    def test_AddPermission(self):
+      # test "Add permission" on ERP5 Type Information
+      self.portal.portal_types.manage_addTypeInformation(
+            add_meta_type='ERP5 Type Information',
+            id='Test Add Permission Document',
+            typeinfo_name='ERP5Type: Document (ERP5 Document)')
+
+      type_info = self.portal.portal_types.getTypeInfo(
+                        'Test Add Permission Document')
+      
+      # allow this type info in Person Module
+      container_type_info = self.portal.portal_types.getTypeInfo('Person Module')
+      container_type_info.allowed_content_types = tuple(
+              container_type_info.allowed_content_types) + (
+              'Test Add Permission Document', )
+
+      # by default this is empty, which implictly means "Add portal content",
+      # the default permission
+      self.assertEqual(type_info.permission, '')
+
+      container = self.portal.person_module
+
+      self.assertTrue(getSecurityManager().getUser().has_permission(
+                      'Add portal content', container))
+      self.assertTrue(type_info in container.allowedContentTypes())
+      container.newContent(portal_type='Test Add Permission Document')
+
+      container.manage_permission('Add portal content', [], 0)
+      self.assertFalse(type_info in container.allowedContentTypes())
+      self.assertRaises(Unauthorized, container.newContent,
+                        portal_type='Test Add Permission Document')
+      
+      type_info.permission = 'Manage portal'
+      container.manage_permission('Manage portal', [], 0)
+      self.assertFalse(type_info in container.allowedContentTypes())
+      self.assertRaises(Unauthorized, container.newContent,
+                        portal_type='Test Add Permission Document')
+
+      container.manage_permission('Manage portal', ['Anonymous'], 0)
+      self.assertTrue(type_info in container.allowedContentTypes())
+      container.newContent(portal_type='Test Add Permission Document')
+
 
 class TestAccessControl(ERP5TypeTestCase):
   # Isolate test in a dedicaced class in order not to break other tests




More information about the Erp5-report mailing list