From a9454c13d890c5775d58735199f57caaf75aed33 Mon Sep 17 00:00:00 2001 From: Chris McDonough Date: Fri, 14 Aug 2009 07:27:44 +0000 Subject: - Move (non-API) default_view, default_forbidden_view, and default_notfound_view functions into the ``repoze.bfg.view`` module (moved from ``repoze.bfg.router``). --- repoze/bfg/view.py | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) (limited to 'repoze/bfg/view.py') diff --git a/repoze/bfg/view.py b/repoze/bfg/view.py index ce7153249..4e5418175 100644 --- a/repoze/bfg/view.py +++ b/repoze/bfg/view.py @@ -1,3 +1,4 @@ +import cgi import os import inspect import mimetypes @@ -12,12 +13,16 @@ import mimetypes if hasattr(mimetypes, 'init'): mimetypes.init() +from webob import Response + from paste.urlparser import StaticURLParser from zope.component import queryMultiAdapter +from zope.component import queryUtility from zope.deprecation import deprecated from repoze.bfg.interfaces import IView +from repoze.bfg.interfaces import IResponseFactory from repoze.bfg.path import caller_path from repoze.bfg.path import caller_package from repoze.bfg.security import view_execution_permitted @@ -303,3 +308,30 @@ class bfg_view(object): _bfg_view.__route_name__ = self.route_name return _bfg_view +def default_view(context, request, status): + try: + msg = cgi.escape(request.environ['repoze.bfg.message']) + except KeyError: + msg = '' + html = """ + + %s + +

%s

+ %s + + + """ % (status, status, msg) + headers = [('Content-Length', str(len(html))), + ('Content-Type', 'text/html')] + response_factory = queryUtility(IResponseFactory, default=Response) + return response_factory(status = status, + headerlist = headers, + app_iter = [html]) + +def default_forbidden_view(context, request): + return default_view(context, request, '401 Unauthorized') + +def default_notfound_view(context, request): + return default_view(context, request, '404 Not Found') + -- cgit v1.2.3