summaryrefslogtreecommitdiff
path: root/repoze/bfg/zcml.py
diff options
context:
space:
mode:
Diffstat (limited to 'repoze/bfg/zcml.py')
-rw-r--r--repoze/bfg/zcml.py13
1 files changed, 13 insertions, 0 deletions
diff --git a/repoze/bfg/zcml.py b/repoze/bfg/zcml.py
index 5320554bc..2bf394eb8 100644
--- a/repoze/bfg/zcml.py
+++ b/repoze/bfg/zcml.py
@@ -18,6 +18,7 @@ from zope.schema import TextLine
from repoze.bfg.interfaces import IAuthenticationPolicy
from repoze.bfg.interfaces import IAuthorizationPolicy
+from repoze.bfg.interfaces import IDefaultPermission
from repoze.bfg.interfaces import IRendererFactory
from repoze.bfg.interfaces import IRouteRequest
from repoze.bfg.interfaces import IView
@@ -852,6 +853,18 @@ def utility(_context, provides=None, component=None, factory=None, name=''):
kw = kw,
)
+class IDefaultPermissionDirective(Interface):
+ name = TextLine(title=u'name', required=True)
+
+def default_permission(_context, name):
+ """ Register a default permission name """
+ # the default permission must be registered eagerly so it can
+ # be found by the view registration machinery
+ reg = get_current_registry()
+ config = Configurator(reg, package=_context.package)
+ config.set_default_permission(name)
+ _context.action(discriminator=IDefaultPermission)
+
def path_spec(context, path):
# we prefer registering resource specifications over absolute
# paths because these can be overridden by the resource directive.