Mercurial > public > src > rhodecode
annotate pylons_app/config/middleware.py @ 177:93bd77e1f3c1
Changed auth basic handler only for mercurial request.
author | Marcin Kuzminski <marcin@python-works.com> |
---|---|
date | Fri, 21 May 2010 20:50:03 +0200 |
parents | 8b06c420491d |
children | be6d8aaddbd1 |
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 | |
41
71ffa932799d
Added app basic auth.
Marcin Kuzminski <marcin@python-blog.com>
parents:
31
diff
changeset
|
10 from paste.auth.basic import AuthBasicHandler |
101
8b06c420491d
statics moved to pylons.
Marcin Kuzminski <marcin@python-works.com>
parents:
86
diff
changeset
|
11 from pylons_app.lib.simplehg import SimpleHg |
0 | 12 from pylons_app.config.environment import load_environment |
12 | 13 |
43 | 14 def make_app(global_conf, full_stack=True, static_files=True, **app_conf): |
0 | 15 """Create a Pylons WSGI application and return it |
16 | |
17 ``global_conf`` | |
18 The inherited configuration for this application. Normally from | |
19 the [DEFAULT] section of the Paste ini file. | |
20 | |
21 ``full_stack`` | |
12 | 22 Whether or not this application provides a full WSGI stack (by |
23 default, meaning it handles its own exceptions and errors). | |
24 Disable full_stack when this application is "managed" by | |
25 another WSGI middleware. | |
0 | 26 |
27 ``app_conf`` | |
28 The application's local configuration. Normally specified in | |
29 the [app:<name>] section of the Paste ini file (where <name> | |
30 defaults to main). | |
31 | |
32 """ | |
33 # Configure the Pylons environment | |
43 | 34 config = load_environment(global_conf, app_conf) |
35 | |
0 | 36 |
37 # The Pylons WSGI app | |
43 | 38 app = PylonsApp(config=config) |
0 | 39 |
101
8b06c420491d
statics moved to pylons.
Marcin Kuzminski <marcin@python-works.com>
parents:
86
diff
changeset
|
40 |
0 | 41 # Routing/Session/Cache Middleware |
42 app = RoutesMiddleware(app, config['routes.map']) | |
21 | 43 app = SessionMiddleware(app, config) |
101
8b06c420491d
statics moved to pylons.
Marcin Kuzminski <marcin@python-works.com>
parents:
86
diff
changeset
|
44 |
8b06c420491d
statics moved to pylons.
Marcin Kuzminski <marcin@python-works.com>
parents:
86
diff
changeset
|
45 # CUSTOM MIDDLEWARE HERE (filtered by error handling middlewares) |
8b06c420491d
statics moved to pylons.
Marcin Kuzminski <marcin@python-works.com>
parents:
86
diff
changeset
|
46 app = SimpleHg(app, config) |
41
71ffa932799d
Added app basic auth.
Marcin Kuzminski <marcin@python-blog.com>
parents:
31
diff
changeset
|
47 |
0 | 48 if asbool(full_stack): |
49 # Handle Python exceptions | |
50 app = ErrorHandler(app, global_conf, **config['pylons.errorware']) | |
51 | |
52 # Display error documents for 401, 403, 404 status codes (and | |
53 # 500 when debug is disabled) | |
54 if asbool(config['debug']): | |
86
e47d1db5ef20
Added few options to configs,
Marcin Kuzminski <marcin@python-blog.com>
parents:
49
diff
changeset
|
55 app = StatusCodeRedirect(app) |
0 | 56 else: |
86
e47d1db5ef20
Added few options to configs,
Marcin Kuzminski <marcin@python-blog.com>
parents:
49
diff
changeset
|
57 app = StatusCodeRedirect(app, [400, 401, 403, 404, 500]) |
41
71ffa932799d
Added app basic auth.
Marcin Kuzminski <marcin@python-blog.com>
parents:
31
diff
changeset
|
58 |
0 | 59 # Establish the Registry for this application |
60 app = RegistryManager(app) | |
61 | |
43 | 62 if asbool(static_files): |
63 # Serve static files | |
64 static_app = StaticURLParser(config['pylons.paths']['static_files']) | |
65 app = Cascade([static_app, app]) | |
66 | |
67 app.config = config | |
68 | |
12 | 69 return app |
0 | 70 |