Example #1
0
def register():
    """
    User register view.
    :return: HTTP Response
    """

    if request.method == 'GET':
        return render_template('register-page.html')
    else:

        required_inputs = [
            'username', 'email', 'password1', 'password2',
            'terms_and_conditions'
        ]
        form_inputs = ['bio', 'country', 'city', 'school']

        for inp in required_inputs:
            if inp not in request.form:
                return redirect(url_for('core.home'))

        if is_mail(request.form['email']) is None or \
                request.form['password1'] != request.form['password2'] or \
                not password_validation(request.form['password1']):
            return redirect(url_for('core.home'))

        user = Users(username=request.form['username'],
                     email=request.form['email'])
        for inp in form_inputs:
            if inp in request.form:
                user.__setattr__(inp, request.form[inp])

        user.save()
        user.set_password(request.form['password1'])
        login_user(user)
        return redirect(url_for('core.home'))