[IMP] website: catch exception of controller error to return a 401 or 500 error page (and log this exception).
bzr revid: chm@openerp.com-20131114144652-7ta05hrssx22cuiv
This commit is contained in:
parent
82818e3e04
commit
cc574fa2c4
|
@ -52,7 +52,17 @@ def route(routes, *route_args, **route_kwargs):
|
|||
request.website.preprocess_request(request)
|
||||
if f.methods and request.httprequest.method not in f.methods:
|
||||
return werkzeug.exceptions.MethodNotAllowed(valid_methods=f.methods)
|
||||
return f(*args, **kwargs)
|
||||
try:
|
||||
return f(*args, **kwargs)
|
||||
except Exception, err:
|
||||
logger.exception("Website Rendering Error.")
|
||||
if request.context['is_public_user']:
|
||||
return request.website.render("website.401")
|
||||
else:
|
||||
return request.website.render("website.500", {
|
||||
'traceback': traceback.format_exc(),
|
||||
'controller': [f.__module__, "%s.%s" % (args[0].__class__.__name__, f.__name__)],
|
||||
})
|
||||
return wrap
|
||||
return decorator
|
||||
|
||||
|
|
|
@ -398,9 +398,10 @@
|
|||
<h1 class="container mt32">500: Internal Server Error!</h1>
|
||||
</div>
|
||||
<t t-if="editable">
|
||||
<h3>Exception in template: <span id="exception_template" t-esc="template"/></h3>
|
||||
<h3 t-if="template">Exception in template: <span id="exception_template" t-esc="template"/></h3>
|
||||
<h3 t-if="controller">Exception in controller: <span id="exception_controller" t-esc="controller[1]"/> <small>(Module: <span id="exception_module" t-esc="controller[0]"/>)</small> </h3>
|
||||
<h4 t-if="expr">Expression: <t t-esc="expr"/></h4>
|
||||
<pre id="exception_node" t-esc="node"/>
|
||||
<t t-if="node"><pre id="exception_node" t-esc="node"/></t>
|
||||
<pre id="exception_traceback" t-esc="traceback"/>
|
||||
</t>
|
||||
</div>
|
||||
|
@ -415,11 +416,14 @@
|
|||
<p>
|
||||
The page you were looking for could not be
|
||||
authorized.
|
||||
</p><p>
|
||||
</p>
|
||||
<t t-if="error and editable">
|
||||
<pre t-esc="error"/>
|
||||
</t>
|
||||
<p>
|
||||
Maybe you were looking for one of these
|
||||
popular pages ?
|
||||
</p>
|
||||
<pre t-if="editable" t-esc="error"/>
|
||||
<ul>
|
||||
<li><a href="/">Homepage</a></li>
|
||||
<li><a href="/page/website.contactus/">Contact Us</a></li>
|
||||
|
|
Loading…
Reference in New Issue