summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris McDonough <chrism@agendaless.com>2009-11-21 19:03:29 +0000
committerChris McDonough <chrism@agendaless.com>2009-11-21 19:03:29 +0000
commit112d14fa9c2cde8840cd159c18af25dcda75e25b (patch)
tree52556874e477c91cc5a73ecf50cdf000a12d93cd
parent8023a345c0e912371dbc9d02266b7827132ad8e4 (diff)
downloadpyramid-112d14fa9c2cde8840cd159c18af25dcda75e25b.tar.gz
pyramid-112d14fa9c2cde8840cd159c18af25dcda75e25b.tar.bz2
pyramid-112d14fa9c2cde8840cd159c18af25dcda75e25b.zip
No wrappers need a registry.
-rw-r--r--repoze/bfg/configuration.py30
1 files changed, 16 insertions, 14 deletions
diff --git a/repoze/bfg/configuration.py b/repoze/bfg/configuration.py
index 527bce5fb..f0a60b21d 100644
--- a/repoze/bfg/configuration.py
+++ b/repoze/bfg/configuration.py
@@ -240,13 +240,20 @@ class Configurator(object):
def derive_view(self, view, permission=None, predicates=(),
attr=None, renderer_name=None, wrapper_viewname=None,
viewname=None):
- renderer = self.renderer_from_name(renderer_name)
reg = self.reg
+ renderer = self.renderer_from_name(renderer_name)
+ authn_policy = self.reg.queryUtility(IAuthenticationPolicy)
+ authz_policy = self.reg.queryUtility(IAuthorizationPolicy)
+ settings = self.reg.queryUtility(ISettings)
+ logger = self.reg.queryUtility(ILogger, 'repoze.bfg.debug')
mapped_view = _map_view(view, attr, renderer, renderer_name)
- owrapped_view = _owrap_view(mapped_view, viewname,wrapper_viewname)
- secured_view = _secure_view(reg, owrapped_view, permission)
- debug_view = _authdebug_view(reg, secured_view, permission)
- derived_view = _predicate_wrap(reg, debug_view, predicates)
+ owrapped_view = _owrap_view(mapped_view, viewname, wrapper_viewname)
+ secured_view = _secure_view(owrapped_view, permission,
+ authn_policy, authz_policy)
+ debug_view = _authdebug_view(secured_view, permission,
+ authn_policy, authz_policy, settings,
+ logger)
+ derived_view = _predicate_wrap(debug_view, predicates)
return derived_view
def renderer_from_name(self, path_or_spec):
@@ -789,7 +796,7 @@ def _owrap_view(view, viewname, wrapper_viewname):
decorate_view(_owrapped_view, view)
return _owrapped_view
-def _predicate_wrap(registry, view, predicates):
+def _predicate_wrap(view, predicates):
if not predicates:
return view
def _wrapped(context, request):
@@ -803,10 +810,8 @@ def _predicate_wrap(registry, view, predicates):
decorate_view(_wrapped, view)
return _wrapped
-def _secure_view(registry, view, permission):
+def _secure_view(view, permission, authn_policy, authz_policy):
wrapped_view = view
- authn_policy = registry.queryUtility(IAuthenticationPolicy)
- authz_policy = registry.queryUtility(IAuthorizationPolicy)
if authn_policy and authz_policy and (permission is not None):
def _secured_view(context, request):
principals = authn_policy.effective_principals(request)
@@ -825,11 +830,9 @@ def _secure_view(registry, view, permission):
return wrapped_view
-def _authdebug_view(registry, view, permission):
+def _authdebug_view(view, permission, authn_policy, authz_policy, settings,
+ logger):
wrapped_view = view
- authn_policy = registry.queryUtility(IAuthenticationPolicy)
- authz_policy = registry.queryUtility(IAuthorizationPolicy)
- settings = registry.queryUtility(ISettings)
debug_authorization = False
if settings is not None:
debug_authorization = settings.get('debug_authorization', False)
@@ -851,7 +854,6 @@ def _authdebug_view(registry, view, permission):
url = getattr(request, 'url', None)
msg = ('debug_authorization of url %s (view name %r against '
'context %r): %s' % (url, view_name, context, msg))
- logger =registry.queryUtility(ILogger, 'repoze.bfg.debug')
logger and logger.debug(msg)
if request is not None:
request.authdebug_message = msg