def register():
    logger.info("Got a register page request: %s" % request)
    g.role = 'customer'
    db = AndrewDB()
    form = RegisterForm()
    logger.info("Validating the register form")
    form.csrf_enabled = False
    if form.validate_on_submit():
        if not form.password.data == form.password_confirmation.data:
            logger.info(
                "Password confirmation failed, Redirecting to register page")
            return redirect(url_for('register'))

        hash_password = bcrypt.generate_password_hash(
            form.password.data).decode('utf-8')
        res = db.insert_sys_user(form.email.data, hash_password, g.role)
        if not res:
            flash('User with this email already registered')
            logger.info(
                "User with this email (%s) alredy registered, redirecting to register page"
                % form.email.data)
            return redirect(url_for('register'))

        user_id = res[0].strip('()').split(',')[0]
        db.add_customer(user_id, form.first_name.data, form.last_name.data,
                        form.telephone.data)

        user = User(user_id, form.email.data, hash_password, g.role)
        login_user(user)
        flash('User successfully registered')
        logger.info(
            "User (ID = %s) successfully registered, redirecting to index page"
            % user.get_id())
        return redirect(url_for('index'))
    logger.info("Rendering the register page")
    return render_template('register.html', form=form)
Exemple #2
0
def test_add_customer(mock_connect):
    with allure.step('Add customer'):
        with app.app_context():
            db = AndrewDB()
            db.add_customer(1, "John", "Doe", "+0-000-00-00-00")