summaryrefslogtreecommitdiff
path: root/repoze/bfg/view.py
diff options
context:
space:
mode:
authorChris McDonough <chrism@agendaless.com>2009-08-14 07:27:44 +0000
committerChris McDonough <chrism@agendaless.com>2009-08-14 07:27:44 +0000
commita9454c13d890c5775d58735199f57caaf75aed33 (patch)
treee49a3bc91b0ac6cc4de67126d5685c3780c09126 /repoze/bfg/view.py
parent318cceb0cceb1f6ce9be2ff4f840476770654597 (diff)
downloadpyramid-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.py32
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')
+