Example #1
0
def db_setup(**settings):
    engine = create_db_engine(**settings)
    db_session.registry.clear()
    db_session.configure(bind=engine)
    metadata.bind = engine
    metadata.create_all(engine)
    # create custom index for hashed uid
    from sqlalchemy import func, Index
    Index('ix_talk_preferences_uid_sha256', func.encode(func.digest(metadata.tables['talk_preferences'].c.uid, 'sha256')))
Example #2
0
def hashed_uid_factory(request):
    if request.matchdict is not None and 'hash' in request.matchdict:
        context = models.TalkPreference.query.filter(
            func.encode(
                func.digest(func.text(models.TalkPreference.uid), 'sha256'),
                'hex') == request.matchdict['hash']).first()
        if context is None:
            raise NotFound()
        return context
    return object()
Example #3
0
def login():
    form = LoginForm()

    if form.validate_on_submit():
        user = User.query.filter(email=form.email,
                                 password=func.digest(form.password,
                                                      'sha256')).first()
        if user:
            return redirect('/')
        else:
            flash('Wrong username or password.', 'error')
    elif request.method == 'POST':
        flash('Please input both username and password!', 'error')

    return render_template('users/login.html',
                           stock_exchanges=app.config.stock_exchanges,
                           form=SearchForm(),
                           login_form=form)
Example #4
0
def test_get_talk_by_hashed_uid(models, talk_preference):
    from sqlalchemy import func
    assert models.TalkPreference.query.filter(
        func.encode(func.digest(func.text(models.TalkPreference.uid), 'sha256'), 'hex')
        == talk_preference.hashed_uid).one() == talk_preference
Example #5
0
def test_get_talk_by_hashed_uid(models, talk_preference):
    from sqlalchemy import func
    assert models.TalkPreference.query.filter(func.encode(func.digest(func.text(models.TalkPreference.uid), 'sha256'), 'hex') == talk_preference.hashed_uid).one() == talk_preference