[Checkins] SVN: grok/branches/jw-define-roles-directive/src/grok/ Sometimes you want to define the role without granting it permissions

Jan-Wijbrand Kolman janwijbrand at gmail.com
Wed Aug 1 08:55:11 EDT 2007


Log message for revision 78525:
  Sometimes you want to define the role without granting it permissions
  right away.

Changed:
  U   grok/branches/jw-define-roles-directive/src/grok/directive.py
  U   grok/branches/jw-define-roles-directive/src/grok/meta.py
  U   grok/branches/jw-define-roles-directive/src/grok/tests/security/wrong_permissions_argument.py

-=-
Modified: grok/branches/jw-define-roles-directive/src/grok/directive.py
===================================================================
--- grok/branches/jw-define-roles-directive/src/grok/directive.py	2007-08-01 12:27:40 UTC (rev 78524)
+++ grok/branches/jw-define-roles-directive/src/grok/directive.py	2007-08-01 12:55:10 UTC (rev 78525)
@@ -80,10 +80,13 @@
 class DefineRoleDirective(MultipleTimesDirective):
 
     def check_arguments(self, id, permissions):
-        if not isinstance(permissions, (types.ListType, types.TupleType)):
-            raise GrokImportError(
-                "You need to pass a list or tuple of permission ids to the "
-                "permissions argument of %s." % self.name)
+        if permissions is None:
+            return
+        if isinstance(permissions, types.TupleType):
+            return
+        raise GrokImportError(
+            "You need to pass either None, or a tuple of permission ids to "
+            "the permissions argument of %s." % self.name)
 
     def value_factory(self, id, permissions):
         return (id, permissions)

Modified: grok/branches/jw-define-roles-directive/src/grok/meta.py
===================================================================
--- grok/branches/jw-define-roles-directive/src/grok/meta.py	2007-08-01 12:27:40 UTC (rev 78524)
+++ grok/branches/jw-define-roles-directive/src/grok/meta.py	2007-08-01 12:55:10 UTC (rev 78525)
@@ -521,6 +521,8 @@
         for role_id, permissions in role_infos:
             component.provideUtility(
                 Role(role_id, title=role_id), name=role_id)
+            if permissions is None:
+                continue
             for permission in permissions:
                 rolePermissionManager.grantPermissionToRole(permission, role_id)
         return True

Modified: grok/branches/jw-define-roles-directive/src/grok/tests/security/wrong_permissions_argument.py
===================================================================
--- grok/branches/jw-define-roles-directive/src/grok/tests/security/wrong_permissions_argument.py	2007-08-01 12:27:40 UTC (rev 78524)
+++ grok/branches/jw-define-roles-directive/src/grok/tests/security/wrong_permissions_argument.py	2007-08-01 12:55:10 UTC (rev 78525)
@@ -3,10 +3,8 @@
 
   >>> grok.grok('grok.tests.security.wrong_permissions_argument_fixture')
   Traceback (most recent call last):
-  GrokImportError: You need to pass a list or tuple of permission ids to
-  the permissions argument of grok.define_role.
-
-
+  GrokImportError: You need to pass either None, or a tuple of permission ids
+  to the permissions argument of grok.define_role.
 """
 
 import grok



More information about the Checkins mailing list