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() |