[5ec3a0b] | 1 | from pyramid.config import Configurator |
---|
| 2 | from pyramid_zodbconn import get_connection |
---|
| 3 | from pyramid.authentication import AuthTktAuthenticationPolicy |
---|
| 4 | from pyramid.authorization import ACLAuthorizationPolicy |
---|
| 5 | from pyramid.session import SignedCookieSessionFactory |
---|
| 6 | |
---|
| 7 | from .models import appmaker |
---|
| 8 | from .security import groupfinder |
---|
| 9 | |
---|
| 10 | |
---|
| 11 | def root_factory(request): # pragma: no cover |
---|
| 12 | conn = get_connection(request) |
---|
| 13 | return appmaker(conn.root()) |
---|
| 14 | |
---|
| 15 | |
---|
| 16 | def main(global_config, **settings): # pragma: no cover |
---|
| 17 | """ |
---|
| 18 | This function returns a Pyramid WSGI application. |
---|
| 19 | """ |
---|
| 20 | session_factory = SignedCookieSessionFactory( |
---|
[57dcceb] | 21 | secret=settings['session.secret'], |
---|
[5ec3a0b] | 22 | cookie_name='ow-session') |
---|
| 23 | |
---|
| 24 | authn_policy = AuthTktAuthenticationPolicy( |
---|
[57dcceb] | 25 | secret=settings['auth.secret'], |
---|
[5ec3a0b] | 26 | callback=groupfinder, |
---|
| 27 | hashalg='sha512') |
---|
| 28 | |
---|
| 29 | authz_policy = ACLAuthorizationPolicy() |
---|
| 30 | |
---|
| 31 | config = Configurator(root_factory=root_factory, settings=settings) |
---|
| 32 | config.set_authentication_policy(authn_policy) |
---|
| 33 | config.set_authorization_policy(authz_policy) |
---|
| 34 | config.set_session_factory(session_factory) |
---|
| 35 | config.include('pyramid_chameleon') |
---|
| 36 | config.include('pyramid_tm') |
---|
| 37 | config.include('pyramid_retry') |
---|
| 38 | config.include('pyramid_zodbconn') |
---|
[76ebb1b] | 39 | config.include('pyramid_mailer') |
---|
[5ec3a0b] | 40 | config.add_static_view('static', 'static', cache_max_age=3600) |
---|
| 41 | config.add_translation_dirs( |
---|
| 42 | 'ow:locale', |
---|
| 43 | 'formencode:i18n') |
---|
| 44 | config.scan() |
---|
| 45 | return config.make_wsgi_app() |
---|