diff options
| author | Chris McDonough <chrism@agendaless.com> | 2009-08-14 07:27:44 +0000 |
|---|---|---|
| committer | Chris McDonough <chrism@agendaless.com> | 2009-08-14 07:27:44 +0000 |
| commit | a9454c13d890c5775d58735199f57caaf75aed33 (patch) | |
| tree | e49a3bc91b0ac6cc4de67126d5685c3780c09126 /repoze/bfg/view.py | |
| parent | 318cceb0cceb1f6ce9be2ff4f840476770654597 (diff) | |
| download | pyramid-a9454c13d890c5775d58735199f57caaf75aed33.tar.gz pyramid-a9454c13d890c5775d58735199f57caaf75aed33.tar.bz2 pyramid-a9454c13d890c5775d58735199f57caaf75aed33.zip | |
- Move (non-API) default_view, default_forbidden_view, and
default_notfound_view functions into the ``repoze.bfg.view`` module
(moved from ``repoze.bfg.router``).
Diffstat (limited to 'repoze/bfg/view.py')
| -rw-r--r-- | repoze/bfg/view.py | 32 |
1 files changed, 32 insertions, 0 deletions
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 = """ + <html> + <title>%s</title> + <body> + <h1>%s</h1> + <code>%s</code> + </body> + </html> + """ % (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') + |
