from paste.cascade import Cascade
from paste.registry import RegistryManager
from paste.urlparser import StaticURLParser
+from paste.auth.basic import AuthBasicHandler
from paste.deploy.converters import asbool
from pylons import config
from pylons.middleware import ErrorHandler, StatusCodeRedirect
from pylons.wsgiapp import PylonsApp
from routes.middleware import RoutesMiddleware
-from paste import httpexceptions
-from tw.api import make_middleware
import authkit.authorize
from bluechips.config.environment import load_environment
-from bluechips.lib.permissions import BlueChipUser, DummyAuthenticate
+from bluechips.lib.permissions import (BlueChipUser, DummyAuthenticate,
+ authenticate)
def make_app(global_conf, full_stack=True, **app_conf):
"""Create a Pylons WSGI application and return it
# CUSTOM MIDDLEWARE HERE (filtered by error handling middlewares)
app = authkit.authorize.middleware(app, BlueChipUser())
- app = DummyAuthenticate(app, app_conf)
- app = httpexceptions.make_middleware(app, global_conf)
# Routing/Session/Cache Middleware
app = RoutesMiddleware(app, config['routes.map'])
app = SessionMiddleware(app, config)
app = CacheMiddleware(app, config)
- app = make_middleware(app, {
- 'toscawidgets.framework': 'pylons',
- 'toscawidgets.framework.default_view': 'mako',
- 'toscawidgets.middleware.inject_resources': True
- })
-
if asbool(full_stack):
# Handle Python exceptions
app = ErrorHandler(app, global_conf, **config['pylons.errorware'])
# 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])
+ status_codes = [400, 401, 403, 404]
+ if not asbool(config.get('debug')):
+ status_codes.append(500)
+ app = StatusCodeRedirect(app, status_codes)
# Establish the Registry for this application
app = RegistryManager(app)
# server is handling this static content, remove the following 3 lines)
static_app = StaticURLParser(config['pylons.paths']['static_files'])
app = Cascade([static_app, app])
+ app = AuthBasicHandler(app, 'BlueChips', authenticate)
+ app = DummyAuthenticate(app, app_conf)
return app