diff --git a/app/main/forms.py b/app/main/forms.py index 28238e74e..324f1de42 100644 --- a/app/main/forms.py +++ b/app/main/forms.py @@ -95,18 +95,14 @@ class AddServiceForm(Form): def validate_codes(field, code_type): codes = verify_codes_dao.get_codes(user_id=session['user_id'], code_type=code_type) - is_valid = len([code for code in codes if validate_code(field, code)]) == 1 - if is_valid: - field.errors.clear() - return is_valid + print('validate_codes for user_id: {} are {}'.format(session['user_id'], codes)) + if not [code for code in codes if validate_code(field, code)]: + raise ValidationError('Code does not match') def validate_code(field, code): if field.data and check_hash(field.data, code.code): if code.expiry_datetime <= datetime.now(): - field.errors.append('Code has expired') - return False - return True - else: - field.errors.append('Code does not match') - return False + raise ValidationError('Code has expired') + else: + return code.code diff --git a/app/main/views/verify.py b/app/main/views/verify.py index 96ae0cb76..486b456c8 100644 --- a/app/main/views/verify.py +++ b/app/main/views/verify.py @@ -1,3 +1,5 @@ +import traceback + from flask import render_template, redirect, jsonify, session from flask_login import login_user @@ -13,13 +15,16 @@ def render_verify(): @main.route('/verify', methods=['POST']) def process_verify(): - form = VerifyForm() - if form.validate_on_submit(): - user = users_dao.get_user_by_id(session['user_id']) - verify_codes_dao.use_code_for_user_and_type(user_id=user.id, code_type='email') - verify_codes_dao.use_code_for_user_and_type(user_id=user.id, code_type='sms') - users_dao.activate_user(user.id) - login_user(user) - return redirect('/add-service') - else: - return jsonify(form.errors), 400 + try: + form = VerifyForm() + if form.validate_on_submit(): + user = users_dao.get_user_by_id(session['user_id']) + verify_codes_dao.use_code_for_user_and_type(user_id=user.id, code_type='email') + verify_codes_dao.use_code_for_user_and_type(user_id=user.id, code_type='sms') + users_dao.activate_user(user.id) + login_user(user) + return redirect('/add-service') + else: + return jsonify(form.errors), 400 + except: + traceback.print_exc()