Ejemplo n.º 1
0
def main(global_config, **settings):
    """
    This function returns a Pyramid WSGI application.
    """

    # this call inits/enable/disable the cache
    cache.refresh()

    config = Configurator(settings=settings)

    # session configuration
    hex_secret = bytes.fromhex(settings['geru.session_secret'].strip())
    factory = EncryptedCookieSessionFactory(hex_secret)  # other config ad lib.
    config.set_session_factory(factory)

    # tween to handle the session and track the urls visited
    config.add_tween(
        'geru.tweens.user_tracker_tween',
        over=pyramid.tweens.MAIN
    )

    # adding here the packages used in all envs
    config.include('pyramid_jinja2')
    config.include('pyramid_restful')
    config.include('.models')
    config.include('.routes')

    config.scan()
    return config.make_wsgi_app()
Ejemplo n.º 2
0
def includeme(config):

    factory = EncryptedCookieSessionFactory(SECRET, timeout=None)
    config.set_session_factory(factory)
    config.add_static_view('static', 'static', cache_max_age=3600)
    config.add_route('quotes_list', '/quotes')
    config.add_route('quote_detail', '/quotes/{pk}')
    config.add_route('log_requests_list', '/requests')
    config.add_route('home', '/')
Ejemplo n.º 3
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
    authn_policy = AuthTktAuthenticationPolicy(settings['buddy.site_secret'],
                                               callback=groupfinder,hashalg='sha512',max_age=864000, timeout=3600,reissue_time=120)
    authz_policy = ACLAuthorizationPolicy()
    hex_secret = settings['buddy.session_secret'].strip()
    secret = binascii.unhexlify(hex_secret)
    session_factory = EncryptedCookieSessionFactory(secret)
    config = Configurator(settings=settings,
                          authentication_policy=authn_policy,
                          authorization_policy=authz_policy,
                          session_factory=session_factory)

    cache = RootFactory.__acl__
    config.set_root_factory(RootFactory)
    config.add_request_method(get_user, 'user', reify=True)
    config.add_subscriber(add_renderer_globals, BeforeRender)
    config.set_default_csrf_options(require_csrf=True)
    config.add_static_view('static', 'static',cache_max_age=5184000)
    config.add_cache_buster(
        'buddy:static/',
        QueryStringConstantCacheBuster(str(int(time.time()))))
    config.add_static_view('deform_static', 'deform_bootstrap:static',cache_max_age=5184000)
    config.add_cache_buster(
        'buddy:deform_bootstrap/static/',
        QueryStringConstantCacheBuster(str(int(time.time()))))
    config.add_static_view('images','buddy:images')
    config.add_cache_buster(
        'buddy:images/',
        QueryStringConstantCacheBuster(str(int(time.time()))))
    config.include('pyramid_mailer')
    config.include("pyramid_mako")
    config.include("pyramid_retry")
    config.include('buddy.views.noprefix_include')
    config.include('buddy.views.profile_include')
    config.include('buddy.views.advice.noprefix_route')
    config.include('buddy.views.listing.noprefix_route')
    config.include('buddy.views.users_include',route_prefix='users')
    config.include('buddy.views.listing.add_route',route_prefix='listings')
    config.include('buddy.views.listing.add_route_listing_ajax',route_prefix="listings-ajax")
    config.include('buddy.views.dashboard.add_route',route_prefix='dashboard')
    config.include('buddy.views.advice.blog_route',route_prefix='blogs')
    config.include('buddy.views.inbox.add_route', route_prefix='message')
    config.include('buddy.views.document.add_route',route_prefix='corp')
    config.include("buddy.views.search.add_route", route_prefix="prosearch")
    config.include("buddy.views.pricing.pricing")
    config.include("buddy.pyramid_storage.s3")

    config.scan()
    return config.make_wsgi_app()
Ejemplo n.º 4
0
def main(global_config, **settings):
    config = Configurator(settings=settings)

    # database
    engine = get_engine(settings)
    DBSession.configure(bind=engine)
    Base.metadata.bind = engine

    # authentication/authorization policies
    authn_policy = AuthTktAuthenticationPolicy(
        '^4VhV0sRwqZ' + 'O-y_If{bea$+v;}qQKl-9.F>>4yM[RQv,lDCfO>cYp2N/gzQiq+R',
        timeout=3600 * 4,
        reissue_time=240,
        max_age=3600 * 24,
        callback=m_auth.group_finder,
        hashalg='sha512')
    authz_policy = ACLAuthorizationPolicy()
    config.add_view_predicate('permissions', PermissionsPredicate)
    config.set_authentication_policy(authn_policy)
    config.set_authorization_policy(authz_policy)

    # add custom methods to the request
    config.set_request_factory(CustomRequest)
    config.add_request_method('agallery.models.auth.get_user',
                              'user',
                              reify=True)
    config.add_request_method('agallery.models.auth.get_login',
                              'login',
                              property=True,
                              reify=True)
    config.add_request_method('agallery.models.auth.check_permissions',
                              'has_permission')
    config.add_request_method('agallery.Configurations.get_configs',
                              'config',
                              property=True,
                              reify=True)

    # session configuration
    hex_secret = bytes.fromhex(settings['agallery.session_secret'].strip())
    session_factory = EncryptedCookieSessionFactory(hex_secret)
    config.set_session_factory(session_factory)

    # files
    config.add_static_view('static', 'agallery:static', cache_max_age=0)
    config.add_static_view('userfiles', 'userfiles', cache_max_age=0)

    # template renderers
    config.add_renderer('.html', 'pyramid_jinja2.renderer_factory')

    config.include('pyramid_jinja2')
    config.include('.models')
    config.include('.routes')
    config.scan()
    return config.make_wsgi_app()
Ejemplo n.º 5
0
def includeme(config):
    """Setup the session handling in the configuration."""
    secret = unhexlify(config.get_settings()['app.session_secret'].strip())
    factory = EncryptedCookieSessionFactory(secret,
                                            cookie_name='toja',
                                            timeout=86400)
    config.set_session_factory(factory)

    config.add_request_method(get_current_user, 'current_user', reify=True)

    config.get_jinja2_environment().filters['logged_in'] = logged_in
Ejemplo n.º 6
0
def main(global_config, **settings):
    """ This function returns a Pyramid WSGI application.
    """
    with Configurator(settings=settings,
                      root_factory='.resources.Root') as config:
        config.include('.models')
        config.include('pyramid_jinja2')
        config.include('.routes')
        config.include('.security')
        config.scan(ignore=['.tests', '.migration_tests'])
        config.set_default_permission('view')
        hex_secret = config.get_settings()['session_secret'].strip()
        secret = binascii.unhexlify(hex_secret)
        factory = EncryptedCookieSessionFactory(secret=secret,
                                                serializer=JSONSerializer(),
                                                timeout=86400)
        config.set_session_factory(factory)
    return config.make_wsgi_app()
Ejemplo n.º 7
0
def includeme(config):
    """Setup the session handling in the configuration."""
    global UserModel, login_route, store_current
    settings = config.get_settings()
    UserModel = settings['pwh.pyramid_session.user']
    login_route = settings['pwh.pyramid_session.login_route']
    if 'pwh.pyramid_session.store_current' in settings and \
            settings['pwh.pyramid_session.store_current'].lower() == 'false':
        store_current = False

    secret = unhexlify(settings['pwh.pyramid_session.secret'].strip())
    factory = EncryptedCookieSessionFactory(
        secret,
        cookie_name=settings['pwh.pyramid_session.cookie_name'],
        timeout=int(settings['pwh.pyramid_session.timeout'])
        if 'pwh.pyramid_session.timeout' in settings else 1200)
    config.set_session_factory(factory)

    config.add_request_method(get_current_user, 'current_user', reify=True)

    config.set_default_csrf_options(require_csrf=True)

    config.get_jinja2_environment().filters['logged_in'] = logged_in
Ejemplo n.º 8
0
def make_config(settings):  # pragma: no cover
    """Returns a Pyramid configurator."""
    config = Configurator(settings=settings)
    config.add_settings({
        "mako.directories":
        "fanboi2:templates",
        "dogpile.backend":
        "dogpile.cache.redis",
        "dogpile.arguments.url":
        config.registry.settings["redis.url"],
        "dogpile.redis_expiration_time":
        60 * 60 * 1,  # 1 hour
        "dogpile.arguments.distributed_lock":
        True,
        "tm.activate_hook":
        tm_maybe_activate,
    })

    if config.registry.settings["server.development"]:
        config.add_settings({
            "pyramid.reload_templates": True,
            "pyramid.debug_authorization": True,
            "pyramid.debug_notfound": True,
            "pyramid.default_locale_name": "en",
            "debugtoolbar.hosts": "0.0.0.0/0",
        })
        config.include("pyramid_debugtoolbar")

    config.include("pyramid_mako")
    config.include("pyramid_services")

    session_secret_hex = config.registry.settings["session.secret"].strip()
    session_secret = binascii.unhexlify(session_secret_hex)
    session_factory = EncryptedCookieSessionFactory(session_secret,
                                                    cookie_name="_session",
                                                    timeout=3600,
                                                    httponly=True)

    config.set_session_factory(session_factory)
    config.set_csrf_storage_policy(SessionCSRFStoragePolicy(key="_csrf"))
    config.set_request_property(route_name)
    config.add_request_method(tagged_static_path)
    config.add_route("robots", "/robots.txt")

    config.include("fanboi2.auth")
    config.include("fanboi2.cache")
    config.include("fanboi2.filters")
    config.include("fanboi2.geoip")
    config.include("fanboi2.models")
    config.include("fanboi2.redis")
    config.include("fanboi2.serializers")
    config.include("fanboi2.services")
    config.include("fanboi2.tasks")

    config.include("fanboi2.views.admin", route_prefix="/admin")
    config.include("fanboi2.views.api", route_prefix="/api")
    config.include("fanboi2.views.pages", route_prefix="/pages")
    config.include("fanboi2.views.boards", route_prefix="/")
    config.add_static_view("static", "static", cache_max_age=3600)

    return config
Ejemplo n.º 9
0
def includeme(config):
    settings = config.get_settings()
    hex_secret = settings['session.session_secret'].strip()
    secret = binascii.unhexlify(hex_secret)
    factory = EncryptedCookieSessionFactory(secret)  # other config ad lib.
    config.set_session_factory(factory)