Steve Piercy
2017-08-04 2aa2175d8f0eedcef59e48f05f66bf1be763dea3
commit | author | age
2a5ae0 1 from pyramid.config import Configurator
b25335 2 from pyramid_zodbconn import get_connection
CM 3
19b820 4 from pyramid.authentication import AuthTktAuthenticationPolicy
2a5ae0 5 from pyramid.authorization import ACLAuthorizationPolicy
CM 6
4466bb 7 from .models import appmaker
K 8 from .security import groupfinder
b25335 9
CM 10 def root_factory(request):
11     conn = get_connection(request)
12     return appmaker(conn.root())
b3b713 13
6d1eee 14
c44c40 15 def main(global_config, **settings):
6d1eee 16     """ This function returns a Pyramid WSGI application.
b3b713 17     """
2aa217 18     settings['tm.manager_hook'] = 'pyramid_tm.explicit_manager'
19b820 19     authn_policy = AuthTktAuthenticationPolicy(
MM 20         'sosecret', callback=groupfinder, hashalg='sha512')
2a5ae0 21     authz_policy = ACLAuthorizationPolicy()
2aa217 22     with Configurator(settings=settings) as config:
SP 23         config.set_authentication_policy(authn_policy)
24         config.set_authorization_policy(authz_policy)
25         config.include('pyramid_chameleon')
26         config.include('pyramid_tm')
27         config.include('pyramid_retry')
28         config.include('pyramid_zodbconn')
29         config.set_root_factory(root_factory)
30         config.add_static_view('static', 'static', cache_max_age=3600)
31         config.scan()
32         return config.make_wsgi_app()