def main(global_config, **settings): """ Return a Pyramid WSGI application. """ settings['config_uri'] = global_config['__file__'] # here we create the engine and bind it to the (not really a) session # factory configure_engine(settings) from views import root_factory config = Configurator(settings=settings, root_factory=root_factory) config.add_translation_dirs('assembl:locale/') config.set_locale_negotiator(my_locale_negotiator) config.add_tween( 'assembl.tweens.virtuoso_deadlock.transient_deadlock_tween_factory', under="pyramid_tm.tm_tween_factory") config.include('.lib.zmqlib') session_factory = session_factory_from_settings(settings) config.set_session_factory(session_factory) if not settings.get('nosecurity', False): # import after session to delay loading of BaseOps from auth import authentication_callback auth_policy = SessionAuthenticationPolicy( callback=authentication_callback) config.set_authentication_policy(auth_policy) config.set_authorization_policy(ACLAuthorizationPolicy()) # ensure default roles and permissions at startup from models import get_session_maker from auth.models import ( populate_default_roles, populate_default_permissions) with transaction.manager: session = get_session_maker() populate_default_roles(session) populate_default_permissions(session) config.add_static_view('static', 'static', cache_max_age=3600) config.include('cornice') # REST services library. # config.include('.lib.alembic') # config.include('.lib.email') config.include('.views') # config.scan('.lib') config.scan('.views') # jinja2 config.include('pyramid_jinja2') config.add_jinja2_extension('jinja2.ext.i18n') # Mailer config.include('pyramid_mailer') # Tasks config.include('.tasks') config.include('.view_def') return config.make_wsgi_app()
def main(global_config, **settings): """ Return a Pyramid WSGI application. """ settings['config_uri'] = global_config['__file__'] # here we create the engine and bind it to the (not really a) session # factory configure_engine(settings) from views.traversal import root_factory config = Configurator(registry=getGlobalSiteManager()) config.setup_registry(settings=settings, root_factory=root_factory) config.add_translation_dirs('assembl:locale/') def my_locale_negotiator(request): locale = default_locale_negotiator(request) available = settings['available_languages'].split() locale = locale if locale in available else None if not locale: locale = request.accept_language.best_match( available, settings.get('pyramid.default_locale_name', 'en')) request._LOCALE_ = locale return locale config.set_locale_negotiator(my_locale_negotiator) config.add_tween( 'assembl.tweens.virtuoso_deadlock.transient_deadlock_tween_factory', under="pyramid_tm.tm_tween_factory") # Tasks first, because it includes ZCA registration (for now) config.include('.tasks') config.include('pyramid_dogpile_cache') config.include('.lib.zmqlib') session_factory = session_factory_from_settings(settings) config.set_session_factory(session_factory) if not settings.get('nosecurity', False): # import after session to delay loading of BaseOps from auth.util import authentication_callback auth_policy = SessionAuthenticationPolicy( callback=authentication_callback) config.set_authentication_policy(auth_policy) config.set_authorization_policy(ACLAuthorizationPolicy()) # ensure default roles and permissions at startup from models import get_session_maker from .models.auth import ( populate_default_roles, populate_default_permissions) with transaction.manager: session = get_session_maker() populate_default_roles(session) populate_default_permissions(session) config.add_static_view('static', 'static', cache_max_age=3600) config.add_static_view('widget', 'widget', cache_max_age=3600) config.include('cornice') # REST services library. # config.include('.lib.alembic') # config.include('.lib.email') config.include('.views') # config.scan('.lib') config.scan('.views') # jinja2 config.include('pyramid_jinja2') config.add_jinja2_extension('jinja2.ext.i18n') # Mailer config.include('pyramid_mailer') config.include('.view_def') return config.make_wsgi_app()
def main(global_config, **settings): """ Return a Pyramid WSGI application. """ settings['config_uri'] = global_config['__file__'] # here we create the engine and bind it to the (not really a) session # factory set_config(settings) if not session_maker_is_initialized(): configure_engine(settings) if settings.get('assembl_debug_signal', False): from assembl.lib import signals signals.listen() from views.traversal import root_factory config = Configurator(registry=getGlobalSiteManager()) config.setup_registry(settings=settings, root_factory=root_factory) config.add_translation_dirs('assembl:locale/') config.set_locale_negotiator(my_locale_negotiator) if using_virtuoso(): config.add_tween( 'assembl.tweens.virtuoso_deadlock.transient_deadlock_tween_factory', under="pyramid_tm.tm_tween_factory") config.include('.auth') config.include('.models') # Tasks first, because it includes ZCA registration (for now) config.include('.tasks') config.include('pyramid_dogpile_cache') config.include('.lib.zmqlib') session_factory = session_factory_from_settings(settings) config.set_session_factory(session_factory) if not settings.get('nosecurity', False): # import after session to delay loading of BaseOps from auth.util import authentication_callback auth_policy_name = settings.get( "auth_policy_class", "assembl.auth.util.UpgradingSessionAuthenticationPolicy") auth_policy = resolver.resolve(auth_policy_name)( callback=authentication_callback) config.set_authentication_policy(auth_policy) config.set_authorization_policy(ACLAuthorizationPolicy()) # ensure default roles and permissions at startup from models import get_session_maker with transaction.manager: session = get_session_maker() from .lib.migration import bootstrap_db_data bootstrap_db_data(session, False) config.add_static_view('static', 'static', cache_max_age=3600) config.add_static_view('static2', 'static2', cache_max_age=3600) config.include('.graphql') # This MUST be above views import config.include('cornice') # REST services library. # config.include('.lib.alembic') # config.include('.lib.email') config.include('.lib') config.include('.views') # jinja2 config.include('pyramid_jinja2') config.add_jinja2_extension('jinja2.ext.i18n') # Mailer config.include('pyramid_mailer') config.include('.view_def') wsgi_app = config.make_wsgi_app() if asbool(settings.get('sqltap', False)): wsgi_app = sqltap.wsgi.SQLTapMiddleware(wsgi_app) return wsgi_app
def main(global_config, **settings): """ Return a Pyramid WSGI application. """ settings['config_uri'] = global_config['__file__'] # here we create the engine and bind it to the (not really a) session # factory set_config(settings) if not session_maker_is_initialized(): configure_engine(settings) if settings.get('assembl_debug_signal', False): from assembl.lib import signals signals.listen() from views.traversal import root_factory config = Configurator(registry=getGlobalSiteManager()) config.setup_registry(settings=settings, root_factory=root_factory) config.add_translation_dirs('assembl:locale/') global locale_negotiator locale_negotiator = my_locale_negotiator config.set_locale_negotiator(my_locale_negotiator) config.add_tween( 'assembl.tweens.virtuoso_deadlock.transient_deadlock_tween_factory', under="pyramid_tm.tm_tween_factory") # Tasks first, because it includes ZCA registration (for now) config.include('.tasks') config.include('pyramid_dogpile_cache') config.include('.lib.zmqlib') session_factory = session_factory_from_settings(settings) config.set_session_factory(session_factory) if not settings.get('nosecurity', False): # import after session to delay loading of BaseOps from auth.util import authentication_callback auth_policy = SessionAuthenticationPolicy( callback=authentication_callback) config.set_authentication_policy(auth_policy) config.set_authorization_policy(ACLAuthorizationPolicy()) # ensure default roles and permissions at startup from models import get_session_maker from .models.auth import ( populate_default_roles, populate_default_permissions) with transaction.manager: session = get_session_maker() populate_default_roles(session) populate_default_permissions(session) config.add_static_view('static', 'static', cache_max_age=3600) config.add_static_view('widget', 'widget', cache_max_age=3600) config.include('cornice') # REST services library. # config.include('.lib.alembic') # config.include('.lib.email') config.include('.views') # config.scan('.lib') config.scan('.views') # jinja2 config.include('pyramid_jinja2') config.add_jinja2_extension('jinja2.ext.i18n') # Mailer config.include('pyramid_mailer') config.include('.view_def') wsgi_app = config.make_wsgi_app() if asbool(settings.get('sqltap', False)): wsgi_app = sqltap.wsgi.SQLTapMiddleware(wsgi_app) return wsgi_app
def main(global_config, **settings): """ Return a Pyramid WSGI application. """ settings['config_uri'] = global_config['__file__'] # here we create the engine and bind it to the (not really a) session # factory settings = set_config(settings) if not session_maker_is_initialized(): configure_engine(settings) if settings.get('assembl_debug_signal', False): from assembl.lib import signals signals.listen() import os if 'UWSGI_ORIGINAL_PROC_NAME' in os.environ: # uwsgi does not load logging properly from pyramid.paster import setup_logging setup_logging(global_config['__file__']) # Sentry import sentry_sdk from sentry_sdk.integrations.pyramid import PyramidIntegration if settings.get('sentry_dsn', ''): sentry_sdk.init( dsn=settings['sentry_dsn'], integrations=[PyramidIntegration()] ) from views.traversal import root_factory config = Configurator(registry=getGlobalSiteManager()) config.setup_registry(settings=settings, root_factory=root_factory) config.add_translation_dirs('assembl:locale/') config.set_locale_negotiator(my_locale_negotiator) config.add_tween( 'assembl.tweens.logging.logging_tween_factory', over="pyramid_tm.tm_tween_factory") config.include('.auth') config.include('.models') config.include('.indexing') config.include('.lib.logging') # Tasks first, because it includes ZCA registration (for now) config.include('.tasks') config.include('.lib.zmqlib') session_factory = session_factory_from_settings(settings) config.set_session_factory(session_factory) if not settings.get('nosecurity', False): # import after session to delay loading of BaseOps from auth.util import authentication_callback auth_policy_name = settings.get( "auth_policy_class", "assembl.auth.util.UpgradingSessionAuthenticationPolicy") auth_policy = resolver.resolve(auth_policy_name)( callback=authentication_callback) config.set_authentication_policy(auth_policy) config.set_authorization_policy(ACLAuthorizationPolicy()) # ensure default roles and permissions at startup from models import get_session_maker if not settings.get('in_migration', False): with transaction.manager: session = get_session_maker() from .lib.migration import bootstrap_db_data bootstrap_db_data(session, settings['config_uri'] != "testing.ini") config.add_static_view('static', 'static', cache_max_age=3600) config.add_static_view('static2', 'static2', cache_max_age=3600) config.include('.graphql') # This MUST be above views import config.include('cornice') # REST services library. # config.include('.lib.alembic') # config.include('.lib.email') config.include('.lib') config.include('.views') # jinja2 config.include('pyramid_jinja2') config.add_jinja2_extension('jinja2.ext.i18n') # Mailer config.include('pyramid_mailer') config.include('.view_def') wsgi_app = config.make_wsgi_app() if asbool(settings.get('sqltap', False)): import sqltap.wsgi wsgi_app = sqltap.wsgi.SQLTapMiddleware(wsgi_app) return wsgi_app
def main(global_config, **settings): """ Return a Pyramid WSGI application. """ settings['config_uri'] = global_config['__file__'] # here we create the engine and bind it to the (not really a) session # factory set_config(settings) if not session_maker_is_initialized(): configure_engine(settings) if settings.get('assembl_debug_signal', False): from assembl.lib import signals signals.listen() from views.traversal import root_factory config = Configurator(registry=getGlobalSiteManager()) config.setup_registry(settings=settings, root_factory=root_factory) config.add_translation_dirs('assembl:locale/') def my_locale_negotiator(request): locale = to_posix_format(default_locale_negotiator(request)) available = settings['available_languages'].split() if locale and locale not in available: locale_with_country = ensure_locale_has_country(locale) if locale_with_country: locale = locale_with_country if not locale: locale = to_posix_format( request.accept_language.best_match( available, settings.get('pyramid.default_locale_name', 'en'))) request._LOCALE_ = locale return locale config.set_locale_negotiator(my_locale_negotiator) config.add_tween( 'assembl.tweens.virtuoso_deadlock.transient_deadlock_tween_factory', under="pyramid_tm.tm_tween_factory") # Tasks first, because it includes ZCA registration (for now) config.include('.tasks') config.include('pyramid_dogpile_cache') config.include('.lib.zmqlib') session_factory = session_factory_from_settings(settings) config.set_session_factory(session_factory) if not settings.get('nosecurity', False): # import after session to delay loading of BaseOps from auth.util import authentication_callback auth_policy = SessionAuthenticationPolicy( callback=authentication_callback) config.set_authentication_policy(auth_policy) config.set_authorization_policy(ACLAuthorizationPolicy()) # ensure default roles and permissions at startup from models import get_session_maker from .models.auth import (populate_default_roles, populate_default_permissions) with transaction.manager: session = get_session_maker() populate_default_roles(session) populate_default_permissions(session) config.add_static_view('static', 'static', cache_max_age=3600) config.add_static_view('widget', 'widget', cache_max_age=3600) config.include('cornice') # REST services library. # config.include('.lib.alembic') # config.include('.lib.email') config.include('.views') # config.scan('.lib') config.scan('.views') # jinja2 config.include('pyramid_jinja2') config.add_jinja2_extension('jinja2.ext.i18n') # Mailer config.include('pyramid_mailer') config.include('.view_def') wsgi_app = config.make_wsgi_app() if asbool(settings.get('sqltap', False)): wsgi_app = sqltap.wsgi.SQLTapMiddleware(wsgi_app) return wsgi_app