--- a/schema.py Tue Sep 13 14:54:00 2011 +0200
+++ b/schema.py Tue Sep 13 15:40:06 2011 +0200
@@ -59,11 +59,12 @@
'from_state', 'to_state', 'condition',
'subworkflow', 'subworkflow_state', 'subworkflow_exit',
))
-SYSTEM_RTYPES = set(('in_group', 'require_group',
+SYSTEM_RTYPES = set(('in_group', 'require_group', 'require_permission',
# cwproperty
'for_user',
)) | WORKFLOW_RTYPES
NO_I18NCONTEXT = META_RTYPES | WORKFLOW_RTYPES
+NO_I18NCONTEXT.add('require_permission')
SKIP_COMPOSITE_RELS = [('cw_source', 'subject')]
@@ -84,7 +85,7 @@
'WorkflowTransition', 'BaseTransition',
'SubWorkflowExitPoint'))
-INTERNAL_TYPES = set(('CWProperty', 'CWCache', 'ExternalUri',
+INTERNAL_TYPES = set(('CWProperty', 'CWPermission', 'CWCache', 'ExternalUri',
'CWSource', 'CWSourceHostConfig', 'CWSourceSchemaConfig'))
@@ -1173,7 +1174,7 @@
# _() is just there to add messages to the catalog, don't care about actual
# translation
-MAY_USE_TEMPLATE_FORMAT = set(('managers',))
+PERM_USE_TEMPLATE_FORMAT = _('use_template_format')
NEED_PERM_FORMATS = [_('text/cubicweb-page-template')]
@monkeypatch(FormatConstraint)
@@ -1188,9 +1189,9 @@
# cw is a server session
hasperm = not cw.write_security or \
not cw.is_hook_category_activated('integrity') or \
- cw.user.matching_groups(MAY_USE_TEMPLATE_FORMAT)
+ cw.user.has_permission(PERM_USE_TEMPLATE_FORMAT)
else:
- hasperm = cw.user.matching_groups(MAY_USE_TEMPLATE_FORMAT)
+ hasperm = cw.user.has_permission(PERM_USE_TEMPLATE_FORMAT)
if hasperm:
return self.regular_formats + tuple(NEED_PERM_FORMATS)
return self.regular_formats