[Checkins]
SVN: grok/branches/jw-define-roles-directive/src/grok/directive.py
Add title and permissions directive.
Jan-Wijbrand Kolman
janwijbrand at gmail.com
Fri Aug 3 17:36:27 EDT 2007
Log message for revision 78563:
Add title and permissions directive.
Changed:
U grok/branches/jw-define-roles-directive/src/grok/directive.py
-=-
Modified: grok/branches/jw-define-roles-directive/src/grok/directive.py
===================================================================
--- grok/branches/jw-define-roles-directive/src/grok/directive.py 2007-08-03 20:40:49 UTC (rev 78562)
+++ grok/branches/jw-define-roles-directive/src/grok/directive.py 2007-08-03 21:36:26 UTC (rev 78563)
@@ -17,7 +17,8 @@
from zope.interface.interfaces import IInterface
from martian.error import GrokImportError
-from martian.directive import (MultipleTimesDirective, BaseTextDirective,
+from martian.directive import (OnceDirective,
+ MultipleTimesDirective, BaseTextDirective,
SingleValue, SingleTextDirective,
MultipleTextDirective,
MarkerDirective,
@@ -77,21 +78,6 @@
self.name_in_container = name_in_container
-class DefineRoleDirective(MultipleTimesDirective):
-
- def check_arguments(self, id, permissions):
- 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)
-
-
class RequireDirective(BaseTextDirective, SingleValue, MultipleTimesDirective):
def store(self, frame, value):
@@ -108,7 +94,14 @@
return func
return decorator
+class MultiValueOnceDirective(OnceDirective):
+ def check_arguments(self, *values):
+ pass
+
+ def value_factory(self, *args):
+ return args
+
# Define grok directives
name = SingleTextDirective('grok.name', ClassDirectiveContext())
template = SingleTextDirective('grok.template', ClassDirectiveContext())
@@ -123,7 +116,9 @@
ClassDirectiveContext())
define_permission = MultipleTextDirective('grok.define_permission',
ModuleDirectiveContext())
-define_role = DefineRoleDirective('grok.define_role', ModuleDirectiveContext())
require = RequireDirective('grok.require', ClassDirectiveContext())
site = InterfaceOrClassDirective('grok.site',
ClassDirectiveContext())
+title = SingleTextDirective('grok.title', ClassDirectiveContext())
+permissions = MultiValueOnceDirective(
+ 'grok.permissions', ClassDirectiveContext())
More information about the Checkins
mailing list