##// END OF EJS Templates
rhodecode.js: workaround missing unknown autocomplete textboxKeyUpEvent...
rhodecode.js: workaround missing unknown autocomplete textboxKeyUpEvent It was introduced in the YUI update in 5143b8df576c and used for @mention handling.

File last commit:

r4116:ffd45b18 rhodecode-2.2.5-gpl
r4173:e975e1d4 rhodecode-2.2.5-gpl
Show More
middleware.py
108 lines | 4.0 KiB | text/x-python | PythonLexer
Bradley M. Kuhn
Imported some of the GPLv3'd changes from RhodeCode v2.2.5....
r4116 # -*- coding: utf-8 -*-
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# 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 General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
"""
Pylons middleware initialization
"""
rhodecode config module refactoring
r1018
renamed project to rhodecode
r547 from beaker.middleware import SessionMiddleware
rhodecode config module refactoring
r1018 from routes.middleware import RoutesMiddleware
renamed project to rhodecode
r547 from paste.cascade import Cascade
from paste.registry import RegistryManager
from paste.urlparser import StaticURLParser
from paste.deploy.converters import asbool
rhodecode config module refactoring
r1018 from paste.gzipper import make_gzip_middleware
renamed project to rhodecode
r547 from pylons.middleware import ErrorHandler, StatusCodeRedirect
from pylons.wsgiapp import PylonsApp
rhodecode config module refactoring
r1018
renamed project to rhodecode
r547 from rhodecode.lib.middleware.simplehg import SimpleHg
Fixed age, for new vcs implementation. Removed all obsolete date formatters...
r635 from rhodecode.lib.middleware.simplegit import SimpleGit
renamed project to rhodecode
r547 from rhodecode.lib.middleware.https_fixup import HttpsFixup
from rhodecode.config.environment import load_environment
moved time measure of request to separate middleware for better results (the last one in stack)
r3489 from rhodecode.lib.middleware.wrapper import RequestWrapper
renamed project to rhodecode
r547
added __license__ into main of rhodecode, PEP8ify
r1205
renamed project to rhodecode
r547 def make_app(global_conf, full_stack=True, static_files=True, **app_conf):
"""Create a Pylons WSGI application and return it
``global_conf``
The inherited configuration for this application. Normally from
the [DEFAULT] section of the Paste ini file.
``full_stack``
Whether or not this application provides a full WSGI stack (by
default, meaning it handles its own exceptions and errors).
Disable full_stack when this application is "managed" by
another WSGI middleware.
``app_conf``
The application's local configuration. Normally specified in
the [app:<name>] section of the Paste ini file (where <name>
defaults to main).
"""
# Configure the Pylons environment
config = load_environment(global_conf, app_conf)
# The Pylons WSGI app
app = PylonsApp(config=config)
Fixed age, for new vcs implementation. Removed all obsolete date formatters...
r635
renamed project to rhodecode
r547 # Routing/Session/Cache Middleware
app = RoutesMiddleware(app, config['routes.map'])
app = SessionMiddleware(app, config)
Fixed age, for new vcs implementation. Removed all obsolete date formatters...
r635
renamed project to rhodecode
r547 # CUSTOM MIDDLEWARE HERE (filtered by error handling middlewares)
added simple profiling middleware controlled by .ini file flag
r1355 if asbool(config['pdebug']):
from rhodecode.lib.profiler import ProfilingMiddleware
app = ProfilingMiddleware(app)
Fixed age, for new vcs implementation. Removed all obsolete date formatters...
r635
#227 Initial version of repository groups permissions system...
r1982 if asbool(full_stack):
fixes problem with basic auth and pushes
r1534
Added Errormator and Sentry support part of pull request #71
r2939 from rhodecode.lib.middleware.sentry import Sentry
from rhodecode.lib.middleware.errormator import Errormator
only use errormator if it's actually turned on in .ini file
r3511 if Errormator and asbool(config['app_conf'].get('errormator')):
Added Errormator and Sentry support part of pull request #71
r2939 app = Errormator(app, config)
elif Sentry:
app = Sentry(app, config)
renamed project to rhodecode
r547 # Handle Python exceptions
app = ErrorHandler(app, global_conf, **config['pylons.errorware'])
overcomes git push issues with errormiddleware and debug off
r1696 # we want our low level middleware to get to the request ASAP. We don't
# need any pylons stack middleware in them
app = SimpleHg(app, config)
app = SimpleGit(app, config)
moved time measure of request to separate middleware for better results (the last one in stack)
r3489 app = RequestWrapper(app, config)
renamed project to rhodecode
r547 # Display error documents for 401, 403, 404 status codes (and
# 500 when debug is disabled)
if asbool(config['debug']):
app = StatusCodeRedirect(app)
else:
app = StatusCodeRedirect(app, [400, 401, 403, 404, 500])
Fixed age, for new vcs implementation. Removed all obsolete date formatters...
r635
renamed project to rhodecode
r547 #enable https redirets based on HTTP_X_URL_SCHEME set by proxy
Added force https option into config files
r914 app = HttpsFixup(app, config)
Fixed age, for new vcs implementation. Removed all obsolete date formatters...
r635
renamed project to rhodecode
r547 # Establish the Registry for this application
app = RegistryManager(app)
if asbool(static_files):
# Serve static files
static_app = StaticURLParser(config['pylons.paths']['static_files'])
app = Cascade([static_app, app])
added gzip middleware
r702 app = make_gzip_middleware(app, global_conf, compress_level=1)
Fixed age, for new vcs implementation. Removed all obsolete date formatters...
r635
renamed project to rhodecode
r547 app.config = config
return app