Mercurial > kallithea
annotate rhodecode/config/middleware.py @ 652:37dc1e8d84d8 beta
changed repo type to use alias
author | Marcin Kuzminski <marcin@python-works.com> |
---|---|
date | Thu, 04 Nov 2010 02:32:37 +0100 |
parents | fd63782c4426 |
children | a9158dfa05cc |
rev | line source |
---|---|
0 | 1 """Pylons middleware initialization""" |
43 | 2 from beaker.middleware import SessionMiddleware |
0 | 3 from paste.cascade import Cascade |
4 from paste.registry import RegistryManager | |
5 from paste.urlparser import StaticURLParser | |
6 from paste.deploy.converters import asbool | |
7 from pylons.middleware import ErrorHandler, StatusCodeRedirect | |
8 from pylons.wsgiapp import PylonsApp | |
9 from routes.middleware import RoutesMiddleware | |
547
1e757ac98988
renamed project to rhodecode
Marcin Kuzminski <marcin@python-works.com>
parents:
341
diff
changeset
|
10 from rhodecode.lib.middleware.simplehg import SimpleHg |
635
fd63782c4426
Fixed age, for new vcs implementation. Removed all obsolete date formatters
Marcin Kuzminski <marcin@python-works.com>
parents:
547
diff
changeset
|
11 from rhodecode.lib.middleware.simplegit import SimpleGit |
547
1e757ac98988
renamed project to rhodecode
Marcin Kuzminski <marcin@python-works.com>
parents:
341
diff
changeset
|
12 from rhodecode.lib.middleware.https_fixup import HttpsFixup |
1e757ac98988
renamed project to rhodecode
Marcin Kuzminski <marcin@python-works.com>
parents:
341
diff
changeset
|
13 from rhodecode.config.environment import load_environment |
12 | 14 |
43 | 15 def make_app(global_conf, full_stack=True, static_files=True, **app_conf): |
0 | 16 """Create a Pylons WSGI application and return it |
17 | |
18 ``global_conf`` | |
19 The inherited configuration for this application. Normally from | |
20 the [DEFAULT] section of the Paste ini file. | |
21 | |
22 ``full_stack`` | |
12 | 23 Whether or not this application provides a full WSGI stack (by |
24 default, meaning it handles its own exceptions and errors). | |
25 Disable full_stack when this application is "managed" by | |
26 another WSGI middleware. | |
0 | 27 |
28 ``app_conf`` | |
29 The application's local configuration. Normally specified in | |
30 the [app:<name>] section of the Paste ini file (where <name> | |
31 defaults to main). | |
32 | |
33 """ | |
34 # Configure the Pylons environment | |
43 | 35 config = load_environment(global_conf, app_conf) |
36 | |
0 | 37 # The Pylons WSGI app |
43 | 38 app = PylonsApp(config=config) |
635
fd63782c4426
Fixed age, for new vcs implementation. Removed all obsolete date formatters
Marcin Kuzminski <marcin@python-works.com>
parents:
547
diff
changeset
|
39 |
0 | 40 # Routing/Session/Cache Middleware |
41 app = RoutesMiddleware(app, config['routes.map']) | |
21 | 42 app = SessionMiddleware(app, config) |
635
fd63782c4426
Fixed age, for new vcs implementation. Removed all obsolete date formatters
Marcin Kuzminski <marcin@python-works.com>
parents:
547
diff
changeset
|
43 |
204
a8ea3ce3cdc4
Created middleware package. Crated special middleware to handle https requests redirections.
Marcin Kuzminski <marcin@python-works.com>
parents:
203
diff
changeset
|
44 # CUSTOM MIDDLEWARE HERE (filtered by error handling middlewares) |
635
fd63782c4426
Fixed age, for new vcs implementation. Removed all obsolete date formatters
Marcin Kuzminski <marcin@python-works.com>
parents:
547
diff
changeset
|
45 |
101
8b06c420491d
statics moved to pylons.
Marcin Kuzminski <marcin@python-works.com>
parents:
86
diff
changeset
|
46 app = SimpleHg(app, config) |
635
fd63782c4426
Fixed age, for new vcs implementation. Removed all obsolete date formatters
Marcin Kuzminski <marcin@python-works.com>
parents:
547
diff
changeset
|
47 app = SimpleGit(app, config) |
fd63782c4426
Fixed age, for new vcs implementation. Removed all obsolete date formatters
Marcin Kuzminski <marcin@python-works.com>
parents:
547
diff
changeset
|
48 |
0 | 49 if asbool(full_stack): |
50 # Handle Python exceptions | |
51 app = ErrorHandler(app, global_conf, **config['pylons.errorware']) | |
52 | |
53 # Display error documents for 401, 403, 404 status codes (and | |
54 # 500 when debug is disabled) | |
55 if asbool(config['debug']): | |
86
e47d1db5ef20
Added few options to configs,
Marcin Kuzminski <marcin@python-blog.com>
parents:
49
diff
changeset
|
56 app = StatusCodeRedirect(app) |
0 | 57 else: |
86
e47d1db5ef20
Added few options to configs,
Marcin Kuzminski <marcin@python-blog.com>
parents:
49
diff
changeset
|
58 app = StatusCodeRedirect(app, [400, 401, 403, 404, 500]) |
635
fd63782c4426
Fixed age, for new vcs implementation. Removed all obsolete date formatters
Marcin Kuzminski <marcin@python-works.com>
parents:
547
diff
changeset
|
59 |
216
c8162373f214
Cleaned the way based was used to generate submenu for admin, now it's much more clear to use submenu. Cleaned admin and added comment to middleware
Marcin Kuzminski <marcin@python-works.com>
parents:
207
diff
changeset
|
60 #enable https redirets based on HTTP_X_URL_SCHEME set by proxy |
207
8bdec09436cb
bumped version to 0.7.1 added atom and rss feeds. Moved https Fixud middleware before error middleware to proper generate debug page (static imports)
Marcin Kuzminski <marcin@python-works.com>
parents:
204
diff
changeset
|
61 app = HttpsFixup(app) |
635
fd63782c4426
Fixed age, for new vcs implementation. Removed all obsolete date formatters
Marcin Kuzminski <marcin@python-works.com>
parents:
547
diff
changeset
|
62 |
0 | 63 # Establish the Registry for this application |
64 app = RegistryManager(app) | |
65 | |
43 | 66 if asbool(static_files): |
67 # Serve static files | |
68 static_app = StaticURLParser(config['pylons.paths']['static_files']) | |
69 app = Cascade([static_app, app]) | |
635
fd63782c4426
Fixed age, for new vcs implementation. Removed all obsolete date formatters
Marcin Kuzminski <marcin@python-works.com>
parents:
547
diff
changeset
|
70 |
269
183c06406127
fixed bug in middleware config
Marcin Kuzminski <marcin@python-works.com>
parents:
216
diff
changeset
|
71 app.config = config |
43 | 72 |
12 | 73 return app |
0 | 74 |