def repozewho1authenticationpolicy(_context, identifier_name='auth_tkt', callback=None): policy = RepozeWho1AuthenticationPolicy(identifier_name=identifier_name, callback=callback) # authentication policies must be registered eagerly so they can # be found by the view registration machinery config = with_context(_context) set_authentication_policy(config, policy)
def configure_karl(config, load_zcml=True): # Authorization/Authentication policies settings = config.registry.settings authentication_policy = MultiAuthenticationPolicy([ AuthTktAuthenticationPolicy(settings['who_secret'], callback=group_finder, cookie_name=settings['who_cookie']), # for b/w compat with bootstrapper RepozeWho1AuthenticationPolicy(callback=group_finder), BasicAuthenticationPolicy() ]) config.set_authorization_policy(ACLAuthorizationPolicy()) config.set_authentication_policy(authentication_policy) # Static tree revisions routing static_rev = settings.get('static_rev') if not static_rev: static_rev = _guess_static_rev() settings['static_rev'] = static_rev config.add_static_view('/static/%s' % static_rev, 'karl.views:static', cache_max_age=60 * 60 * 24 * 365) # Add a redirecting static view to all _other_ revisions. def _expired_static_predicate(info, request): # We add a redirecting route to all static/*, # _except_ if it starts with the active revision segment. path = info['match']['path'] return path and path[0] != static_rev config.add_route('expired-static', '/static/*path', custom_predicates=(_expired_static_predicate, )) # Need a session if using Velruse config.set_session_factory(Session(settings['who_secret'])) # Configure bottlecap layouts config.include('bottlecap') config.add_renderer('.pt', ux2_metarenderer_factory) config.registry.registerUtility(FormishZPTMetaRenderer(), IFormishRenderer) config.include('karl.security.sso') if load_zcml: config.hook_zca() config.include('pyramid_zcml') config.load_zcml('standalone.zcml') # chatter uses this to display user chatter pages, because # there is no container for chatter to hang a view from. config.add_view('karl.views.chatter.finder', context=NotFound, renderer="karl.views:templates/errorpage.pt") debug = asbool(settings.get('debug', 'false')) if not debug: config.add_view('karl.errorpage.errorpage', context=Exception, renderer="karl.views:templates/errorpage.pt") debugtoolbar = asbool(settings.get('debugtoolbar', 'false')) if debugtoolbar and pyramid_debugtoolbar: config.include(pyramid_debugtoolbar) config.add_subscriber(block_webdav, NewRequest) if slowlog is not None: config.include(slowlog) if perfmetrics is not None: config.include(perfmetrics)
def configure_karl(config, load_zcml=True): # Authorization/Authentication policies settings = config.registry.settings authentication_policy = MultiAuthenticationPolicy([ AuthTktAuthenticationPolicy(settings['who_secret'], callback=group_finder, cookie_name=settings['who_cookie']), # for b/w compat with bootstrapper RepozeWho1AuthenticationPolicy(callback=group_finder), BasicAuthenticationPolicy() ]) config.set_authorization_policy(ACLAuthorizationPolicy()) config.set_authentication_policy(authentication_policy) # Static tree revisions routing static_rev = settings.get('static_rev') if not static_rev: static_rev = _guess_static_rev() settings['static_rev'] = static_rev config.add_static_view('/static/%s' % static_rev, 'karl.views:static', cache_max_age=60 * 60 * 24 * 365) # Add a redirecting static view to all _other_ revisions. def _expired_static_predicate(info, request): # We add a redirecting route to all static/*, # _except_ if it starts with the active revision segment. path = info['match']['path'] return path and path[0] != static_rev config.add_route('expired-static', '/static/*path', custom_predicates=(_expired_static_predicate, )) # Need a session if using Velruse config.set_session_factory(Session(settings['who_secret'])) config.include('karl.security.sso') config.include('karl.debugload') config.include('karl.underprofile') if load_zcml: config.hook_zca() config.include('pyramid_zcml') config.load_zcml('standalone.zcml') debug = asbool(settings.get('debug', 'false')) if not debug: config.add_view('karl.errorpage.errorpage', context=Exception, renderer="karl.views:templates/errorpage.pt") config.add_view('karl.errorpage.errorpage', context=HTTPNotFound, renderer="karl.views:templates/errorpage.pt") config.add_view('karl.errorpage.errorpage', context=NotFound, renderer="karl.views:templates/errorpage.pt") config.add_view('karl.errorpage.errorpage', context=ReadOnlyError, renderer="karl.views:templates/errorpage.pt") debugtoolbar = asbool(settings.get('debugtoolbar', 'false')) if debugtoolbar and pyramid_debugtoolbar: config.include(pyramid_debugtoolbar) config.add_subscriber(block_webdav, NewRequest) if slowlog is not None: config.include(slowlog) if perfmetrics is not None: config.include(perfmetrics) if 'intranet_search_paths' in settings: settings['intranet_search_paths'] = settings[ 'intranet_search_paths'].split() else: settings['intranet_search_paths'] = ('/profiles', '/offices') # admin5 Admin UI config.include('admin5') config.include('karl.box')