Source code for linotp.controllers.error

# -*- coding: utf-8 -*-
#
#    LinOTP - the open source solution for two factor authentication
#    Copyright (C) 2010 - 2014 LSE Leading Security Experts GmbH
#
#    This file is part of LinOTP server.
#
#    This program is free software: you can redistribute it and/or
#    modify it under the terms of the GNU Affero General Public
#    License, version 3, as published by the Free Software Foundation.
#
#    This program is distributed in the hope that it will be useful,
#    but WITHOUT ANY WARRANTY; without even the implied warranty of
#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#    GNU Affero General Public License for more details.
#
#    You should have received a copy of the
#               GNU Affero General Public License
#    along with this program.  If not, see <http://www.gnu.org/licenses/>.
#
#
#    E-mail: linotp@lsexperts.de
#    Contact: www.linotp.org
#    Support: www.lsexperts.de
#
"""
error controller - to display errors
"""



import cgi

from paste.urlparser    import PkgResourcesParser
from pylons             import request
from pylons.middleware  import error_document_template

from pylons.controllers.util import forward
from webhelpers.html.builder import literal

from linotp.lib.base    import BaseController


[docs]class ErrorController(BaseController):
[docs] def document(self): """Render the error document""" resp = request.environ.get('pylons.original_response') if resp is not None: content = literal(resp.body) else: content = cgi.escape(request.GET.get('message', '')) page = error_document_template % \ dict(prefix=request.environ.get('SCRIPT_NAME', ''), code=cgi.escape(request.GET.get('code', unicode(resp.status_int))), message=content) return page
[docs] def img(self, id): """Serve Pylons' stock images""" return self._serve_file('/'.join(['media/img', id]))
[docs] def style(self, id): """Serve Pylons' stock stylesheets""" return self._serve_file('/'.join(['media/style', id]))
def _serve_file(self, path): """Call Paste's FileApp (a WSGI application) to serve the file at the specified path """ request.environ['PATH_INFO'] = '/%s' % path return forward(PkgResourcesParser('pylons', 'pylons')) #eof###########################################################################