Fix for duplicate email registration that meant flash error not being

displayed.

The error message does not specify the error is a duplicate email
address so as not to reveal which emails are current user accounts.
This commit is contained in:
Adam Shimali
2016-03-09 15:12:33 +00:00
parent eea5bfe749
commit 33c92a4e29
2 changed files with 36 additions and 6 deletions

View File

@@ -30,9 +30,13 @@ def register():
form = RegisterUserForm()
if form.validate_on_submit():
return _do_registration(form)
else:
return render_template('views/register.html', form=form)
registered = _do_registration(form)
if registered:
return redirect(url_for('main.verify'))
else:
flash('There was an error registering your account')
return render_template('views/register.html', form=form)
@main.route('/register-from-invite', methods=['GET', 'POST'])
@@ -46,7 +50,11 @@ def register_from_invite():
if form.validate_on_submit():
if form.service.data != invited_user['service'] or form.email_address.data != invited_user['email_address']:
abort(400)
return _do_registration(form)
registered = _do_registration(form)
if registered:
return redirect(url_for('main.verify'))
else:
flash('There was an error registering your account')
form.service.data = invited_user['service']
form.email_address.data = invited_user['email_address']
@@ -77,6 +85,6 @@ def _do_registration(form, service=None):
users_dao.send_verify_code(user.id, 'email', user.email_address)
session['expiry_date'] = str(datetime.now() + timedelta(hours=1))
session['user_details'] = {"email": user.email_address, "id": user.id}
return redirect(url_for('main.verify'))
return True
else:
flash('There was an error registering your account')
return False