Esempio n. 1
0
def main(global_config, **settings):
    """ This function returns a Pyramid WSGI application.
    """
    engine = engine_from_config(settings, 'sqlalchemy.')
    DBSession.configure(bind=engine)
    config = Configurator(settings=settings)

    # magical routing!
    config.add_static_view('static', 'static', cache_max_age=3600)
    config.add_route('home', '/')
    config.add_route('login', '/login')
    config.add_route('register', '/register')
    config.add_route('logout', '/logout')
    config.add_route('delete', '/delete/{id}')
    config.add_route('stats', '/stats')
    config.add_route('pstats', '/pstats')
    config.add_route('vstats','/view/{username}/{hash}')
    
    session_factory = session_factory_from_settings(settings)
    config.set_session_factory(session_factory)
    
    config.scan()
    return config.make_wsgi_app()
Esempio n. 2
0
def new_request_subscriber(event):
    request = event.request
    
    if 'user_id' not in request.session or not request.session['user_id']:
        request.session['user_id'] = False
        request.user = False
    else:
        # verify their user record is "still" good
        try:
            request.user = DBSession.query(User).filter(User.id==request.session['user_id']).one()
        except (MultipleResultsFound, NoResultFound) as e:
            request.session['user_id'] = False
            request.user = False
        
    request.DBSession = DBSession