Ejemplo n.º 1
0
def main(global_config, **settings):
    """ This function returns a WSGI application.
    """
    # Security
    my_session_factory = UnencryptedCookieSessionFactoryConfig('itsaseekreet')
    whoconfig_file = settings['whoconfig_file']
    identifier_id = 'auth_tkt'
    authn_policy = WhoV2AuthenticationPolicy(whoconfig_file, identifier_id)
    authz_policy = ACLAuthorizationPolicy()

    # App config
    config = Configurator(settings=settings,
                          root_factory=Root,
                          session_factory=my_session_factory,
                          authentication_policy=authn_policy,
                          authorization_policy=authz_policy)
    config.add_static_view('static', 'max:static')
    config.add_static_view('css', 'max:css')
    config.add_static_view('less', 'max:less')
    config.add_static_view('js', 'max:js')
    config.add_static_view('fonts', 'max:static/fonts')
    config.add_static_view('maxui', 'max:maxui')

    config.add_route('profiles', '/profiles/{username}')
    config.add_route('wadl', '/WADL')

    # Store in registry
    db_uri = settings['mongodb.url']
    conn = pymongo.Connection(db_uri)
    db = conn[settings['mongodb.db_name']]
    config.registry.max_store = db

    # Set MAX settings
    config.registry.max_settings = loadMAXSettings(settings, config)

    # REST Resources
    # Configure routes based on resources defined in RESOURCES
    for name, properties in RESOURCES.items():
        config.add_route(name, properties.get('route'))

    config.scan('max', ignore='max.tests')

    return config.make_wsgi_app()
Ejemplo n.º 2
0
def main(global_config, **settings):
    """ This function returns a WSGI application.
    """
    # Security
    my_session_factory = UnencryptedCookieSessionFactoryConfig('itsaseekreet')
    whoconfig_file = settings['whoconfig_file']
    identifier_id = 'auth_tkt'
    authn_policy = WhoV2AuthenticationPolicy(whoconfig_file, identifier_id)
    authz_policy = ACLAuthorizationPolicy()

    # App config
    config = Configurator(settings=settings,
                          root_factory=Root,
                          session_factory=my_session_factory,
                          authentication_policy=authn_policy,
                          authorization_policy=authz_policy)
    config.add_static_view('static', 'max:static')
    config.add_static_view('css', 'max:css')
    config.add_static_view('less', 'max:less')
    config.add_static_view('js', 'max:js')
    config.add_static_view('fonts', 'max:static/fonts')
    config.add_static_view('maxui', 'max:maxui')

    config.add_route('profiles', '/profiles/{username}')
    config.add_route('wadl', '/WADL')

    # Store in registry
    db_uri = settings['mongodb.url']
    conn = pymongo.Connection(db_uri)
    db = conn[settings['mongodb.db_name']]
    config.registry.max_store = db

    # Set MAX settings
    config.registry.max_settings = loadMAXSettings(settings, config)

    # REST Resources
    # Configure routes based on resources defined in RESOURCES
    for name, properties in RESOURCES.items():
        config.add_route(name, properties.get('route'))

    config.scan('max', ignore='max.tests')

    return config.make_wsgi_app()
Ejemplo n.º 3
0
def main(global_config, **settings):
    """ This function returns a WSGI application.
    """
    # App config
    config = Configurator(settings=settings,
                          root_factory=Root)

    # Store in registry
    db_uri = settings['mongodb.url']
    conn = pymongo.Connection(db_uri)
    db = conn[settings['mongodb.db_name']]
    config.registry.max_store = db

    # Set MAX settings
    config.registry.max_settings = loadMAXSettings(settings, config)

    config.add_route('socket.io', '/socket.io/*remaining')

    config.scan('maxtalk', ignore='maxtalk.tests')

    return config.make_wsgi_app()
Ejemplo n.º 4
0
def main(*args, **settings):
    """ This function returns a WSGI application.
    """
    # App config

    authz_policy = ACLAuthorizationPolicy()
    authn_policy = MaxAuthenticationPolicy(['widgetcli'])

    # Read max settings
    max_settings = loadMAXSettings(settings)

    # IMPORTANT NOTE !! Order matters! First tween added will be the first to be invoked
    settings['pyramid.tweens'] = [
        'max.tweens.excview_tween_factory',
        'max.tweens.compatibility_checker_factory',
        'max.tweens.post_tunneling_factory',
        'max.tweens.deprecation_wrapper_factory',
    ]

    debug.setup(settings)
    mongoprobe.setup(settings)

    config = Configurator(
        settings=settings,
        authentication_policy=authn_policy,
        authorization_policy=authz_policy,
        root_factory=Root)

    config.add_request_method(get_request_actor_username, name='actor_username', reify=True)
    config.add_request_method(get_request_actor, name='actor', reify=True)
    config.add_request_method(get_request_creator, name='creator', reify=True)
    config.add_request_method(get_database, name='db', reify=True)
    config.add_request_method(extract_post_data, name='decoded_payload', reify=True)
    config.add_request_method(get_oauth_headers, name='auth_headers', reify=True)

    # Mongodb connection initialization
    cluster_enabled = asbool(settings.get('mongodb.cluster', False))
    auth_enabled = asbool(settings.get('mongodb.auth', False))
    mongodb_uri = settings.get('mongodb.hosts') if cluster_enabled else settings['mongodb.url']

    conn = mongodb.get_connection(
        mongodb_uri,
        use_greenlets=GEVENT_AVAILABLE,
        cluster=settings.get('mongodb.replica_set', None))
    db = mongodb.get_database(
        conn,
        settings['mongodb.db_name'],
        username=settings.get('mongodb.username', None) if auth_enabled else None,
        password=settings.get('mongodb.password', None) if auth_enabled else None,
        authdb=settings.get('mongodb.authdb', None) if auth_enabled else None)

    config.registry.max_store = db

    # Set MAX settings
    config.registry.max_settings = max_settings

    # Set Twitter settings
    config.registry.cloudapis_settings = loadCloudAPISettings(config.registry)

    # Set security
    config.registry.max_security = loadMAXSecurity(config.registry)

    # Load cache settings
    set_cache_regions_from_settings(settings)

    # REST Resources
    # Configure routes based on resources defined in RESOURCES
    for name, properties in RESOURCES.items():
        route_params = {param: value for param, value in properties.items() if param in ['traverse']}
        config.add_route(name, properties.get('route'), **route_params)

    config.scan('max', ignore=['max.tests'])
    set_signal()

    # Create exceptions log folfer if it doesnt exists
    exceptions_folder = config.registry.settings.get('exceptions_folder', '/tmp/exceptions/')
    if not os.path.exists(exceptions_folder):
        os.makedirs(exceptions_folder)

    return config.make_wsgi_app()