Пример #1
0
def main(global_config, **settings):
    """ This function returns a Pyramid WSGI application.
    """
    config = Configurator(settings=settings)
    settings = config.get_settings()
    # In case certain directories aren't set in the config, we can default to
    # making one in the same directory as the config file.
    config.add_settings(
        {'config_path': os.path.dirname(global_config['__file__'])})
    session_factory = UnencryptedCookieSessionFactoryConfig(
        settings['session.secret'])
    config.set_session_factory(session_factory)
    config.include('pyramid_debugtoolbar')
    config.include('pyramid_mako')
    config.include('pyramid_dogpile_cache2')
    config.include('.db')
    config.include('.routes')
    # Instantiate Whoosh Search Index
    config.include('.lib.search')
    # Setup python-social-auth
    config.add_request_method('chiplibrary.lib.auth.get_user',
                              'user',
                              reify=True)
    config.include('chiplibrary.lib.auth')
    init_social(config, Base, config.registry['dbsession_factory'])
    # Add subscribers to instantiate processes or run necessary startup tasks
    config.add_subscriber(add_renderer_globals, BeforeRender)
    config.add_subscriber(breadcrumb_subscriber, NewRequest)
    config.scan()
    config.scan('social_pyramid')
    return config.make_wsgi_app()
Пример #2
0
def main(global_config, **settings):
    """ This function returns a Pyramid WSGI application.
    """
    config = Configurator(settings=settings)
    settings = config.get_settings()
    # In case certain directories aren't set in the config, we can default to
    # making one in the same directory as the config file.
    config.add_settings({
        'config_path': os.path.dirname(global_config['__file__'])
    })
    session_factory = UnencryptedCookieSessionFactoryConfig(
        settings['session.secret']
    )
    config.set_session_factory(session_factory)
    config.include('pyramid_debugtoolbar')
    config.include('pyramid_mako')
    config.include('pyramid_dogpile_cache2')
    config.include('.db')
    config.include('.routes')
    # Instantiate Whoosh Search Index
    config.include('.lib.search')
    # Setup python-social-auth
    config.add_request_method(
        'chiplibrary.lib.auth.get_user',
        'user',
        reify=True
    )
    config.include('chiplibrary.lib.auth')
    init_social(config, Base, config.registry['dbsession_factory'])
    # Add subscribers to instantiate processes or run necessary startup tasks
    config.add_subscriber(add_renderer_globals, BeforeRender)
    config.add_subscriber(breadcrumb_subscriber, NewRequest)
    config.scan()
    config.scan('social_pyramid')
    return config.make_wsgi_app()
def main(argv=sys.argv):
    if len(argv) < 2:
        usage(argv)
    config_uri = argv[1]
    options = parse_vars(argv[2:])
    setup_logging(config_uri)
    settings = get_appsettings(config_uri, options=options)
    init_social(SOCIAL_AUTH_SETTINGS, Base, DBSession)
    engine = engine_from_config(settings, 'sqlalchemy.')
    DBSession.configure(bind=engine)
    Base.metadata.create_all(engine)
Пример #4
0
def main(argv=sys.argv):
    if len(argv) < 2:
        usage(argv)
    config_uri = argv[1]
    options = parse_vars(argv[2:])
    setup_logging(config_uri)
    settings = get_appsettings(config_uri, options=options)
    dbsession = get_session(settings)
    engine = dbsession.get_bind()
    init_social(SOCIAL_AUTH_SETTINGS, Base, dbsession)
    Base.metadata.drop_all(engine)
    Base.metadata.create_all(engine, checkfirst=True)
    print('All done!')
    sys.exit(1)
Пример #5
0
def main(argv=sys.argv):
    if len(argv) < 2:
        usage(argv)
    config_uri = argv[1]
    options = parse_vars(argv[2:])
    setup_logging(config_uri)
    settings = get_appsettings(config_uri, options=options)
    dbsession = get_session(settings)
    engine = dbsession.get_bind()
    init_social(SOCIAL_AUTH_SETTINGS, Base, dbsession)
    Base.metadata.drop_all(engine)
    Base.metadata.create_all(engine, checkfirst=True)
    print('All done!')
    sys.exit(1)
Пример #6
0
def main(argv=sys.argv):
    if len(argv) < 2:
        usage(argv)
    config_uri = argv[1]
    options = parse_vars(argv[2:])
    setup_logging(config_uri)
    settings = {
        'SOCIAL_AUTH_USER_MODEL': 'pykin.models.User',
    }
    settings.update(get_appsettings(config_uri, options=options))
    init_social(settings, models.Base, models.DBSession)
    engine = engine_from_config(settings, 'sqlalchemy.')
    models.DBSession.configure(bind=engine)
    models.Base.metadata.create_all(engine)

    with transaction.manager:
        pass  # put fixture models here
Пример #7
0
def main(global_config, **settings):
    """This function returns a Pyramid WSGI application."""
    engine = engine_from_config(settings, 'sqlalchemy.')
    DBSession.configure(bind=engine)
    Base.metadata.bind = engine
    session_factory = UnencryptedCookieSessionFactoryConfig('thisisasecret')
    config = Configurator(settings=settings,
                          session_factory=session_factory,
                          autocommit=True)
    config.add_static_view('static', 'static', cache_max_age=3600)
    config.add_request_method('example.auth.get_user', 'user', reify=True)
    config.add_route('home', '/')
    config.add_route('done', '/done')
    config.include('example.settings')
    config.include('example.local_settings')
    config.include('social.apps.pyramid_app')
    init_social(config, Base, DBSession)
    config.scan()
    config.scan('social.apps.pyramid_app')
    return config.make_wsgi_app()
Пример #8
0
def main(global_config, **env_settings):
    """Provides a Pyramid WSGI instance and acts as the entry point to the application."""
    settings = {
        'SOCIAL_AUTH_USER_MODEL': 'pykin.models.User',
        'SOCIAL_AUTH_AUTHENTICATION_BACKENDS': ('social.backends.twitter.TwitterOAuth',),
        'SOCIAL_AUTH_LOGIN_URL': '/',
        'SOCIAL_AUTH_LOGIN_REDIRECT_URL': '/',
        'SOCIAL_AUTH_LOGIN_FUNCTION': 'pykin.login_user',
        'SOCIAL_AUTH_LOGGEDIN_FUNCTION': 'pykin.login_required',
    }
    settings.update(env_settings)

    engine = engine_from_config(settings, 'sqlalchemy.')
    models.DBSession.configure(bind=engine)
    models.Base.metadata.bind = engine

    session_factory = pyramid_beaker.BeakerSessionFactoryConfig(
        type='ext:database',
        url=settings['sqlalchemy.url'],
    )

    app_config = config.Configurator(settings=settings)
    app_config.set_session_factory(session_factory)
    app_config.set_authentication_policy(authentication.SessionAuthenticationPolicy())
    app_config.set_authorization_policy(authorization.ACLAuthorizationPolicy())

    app_config.include('pyramid_jinja2')
    app_config.include('social.apps.pyramid_app')
    app_config.include('pyramid_beaker')

    app_config.add_static_view('static', 'static', cache_max_age=3600)
    app_config.add_route('home', '/')
    app_config.add_route('whoami', '/api/user')
    app_config.add_request_method(auth.get_user, 'user', reify=True)

    init_social(settings, models.Base, models.DBSession)
    app_config.scan('social.apps.pyramid_app')

    app_config.scan()

    return app_config.make_wsgi_app()
Пример #9
0
def main(global_config, **settings):
    """This function returns a Pyramid WSGI application."""
    engine = engine_from_config(settings, 'sqlalchemy.')
    Session.configure(bind=engine)

    session_factory = UnencryptedCookieSessionFactoryConfig(
        settings.get('session.secret', 'secret'),
    )

    authentication_policy = AuthTktAuthenticationPolicy(
        secret=settings.get('authtkt.secret', 'secret'),
        hashalg='sha512',
        callback=groupfinder,
        max_age=86400,
    )
    authorization_policy = ACLAuthorizationPolicy()

    SOCIAL_AUTH_SETTINGS['SOCIAL_AUTH_FACEBOOK_KEY'] = settings['social.facebook_key']  # noqa
    SOCIAL_AUTH_SETTINGS['SOCIAL_AUTH_FACEBOOK_SECRET'] = settings['social.facebook_secret']  # noqa
    SOCIAL_AUTH_SETTINGS['SOCIAL_AUTH_GOOGLE_OAUTH2_KEY'] = settings['social.google_key']  # noqa
    SOCIAL_AUTH_SETTINGS['SOCIAL_AUTH_GOOGLE_OAUTH2_SECRET'] = settings['social.google_secret']  # noqa
    settings.update(SOCIAL_AUTH_SETTINGS)

    config = Configurator(
        settings=settings,
        root_factory=RootFactory,
        authentication_policy=authentication_policy,
        authorization_policy=authorization_policy,
        session_factory=session_factory,
    )
    is_sqlite = 'sqlite' in settings['sqlalchemy.url']
    configure(config, sqlite=is_sqlite)
    DEVELOPER_KEY = settings['balistos.youtube_key']  # noqa
    config.include('pyramid_basemodel')
    config.include('pyramid_tm')
    config.include('social.apps.pyramid_app')
    init_social(config, Base, Session)
    config.scan('social.apps.pyramid_app')

    return config.make_wsgi_app()