Do not send email in case of invite.

The user does not have to validate the email token, but it
was still being sent.
This commit is contained in:
Adam Shimali
2016-03-15 16:58:26 +00:00
parent 4782d8ca1f
commit 4adbcebc6f
2 changed files with 8 additions and 3 deletions

View File

@@ -49,7 +49,7 @@ def register_from_invite():
if form.validate_on_submit(): if form.validate_on_submit():
if form.service.data != invited_user['service'] or form.email_address.data != invited_user['email_address']: if form.service.data != invited_user['service'] or form.email_address.data != invited_user['email_address']:
abort(400) abort(400)
registered = _do_registration(form) registered = _do_registration(form, send_email=False)
if registered: if registered:
return redirect(url_for('main.verify')) return redirect(url_for('main.verify'))
else: else:
@@ -61,7 +61,7 @@ def register_from_invite():
return render_template('views/register-from-invite.html', email_address=invited_user['email_address'], form=form) return render_template('views/register-from-invite.html', email_address=invited_user['email_address'], form=form)
def _do_registration(form, service=None): def _do_registration(form, service=None, send_email=True):
if users_dao.is_email_unique(form.email_address.data): if users_dao.is_email_unique(form.email_address.data):
user = user_api_client.register_user(form.name.data, user = user_api_client.register_user(form.name.data,
form.email_address.data, form.email_address.data,
@@ -74,7 +74,8 @@ def _do_registration(form, service=None):
# sending codes apart from service unavailable? # sending codes apart from service unavailable?
# at the moment i believe http 500 is fine. # at the moment i believe http 500 is fine.
users_dao.send_verify_code(user.id, 'sms', user.mobile_number) users_dao.send_verify_code(user.id, 'sms', user.mobile_number)
users_dao.send_verify_code(user.id, 'email', user.email_address) if send_email:
users_dao.send_verify_code(user.id, 'email', user.email_address)
session['expiry_date'] = str(datetime.now() + timedelta(hours=1)) session['expiry_date'] = str(datetime.now() + timedelta(hours=1))
session['user_details'] = {"email": user.email_address, "id": user.id} session['user_details'] = {"email": user.email_address, "id": user.id}
return True return True

View File

@@ -212,6 +212,7 @@ def test_cancelled_invited_user_accepts_invited_redirect_to_cancelled_invitation
def test_new_user_accept_invite_completes_new_registration_redirects_to_verify(app_, def test_new_user_accept_invite_completes_new_registration_redirects_to_verify(app_,
service_one, service_one,
sample_invite, sample_invite,
api_user_active,
mock_check_invite_token, mock_check_invite_token,
mock_dont_get_user_by_email, mock_dont_get_user_by_email,
mock_register_user, mock_register_user,
@@ -250,6 +251,9 @@ def test_new_user_accept_invite_completes_new_registration_redirects_to_verify(a
assert response.status_code == 302 assert response.status_code == 302
assert response.location == expected_redirect_location assert response.location == expected_redirect_location
from unittest.mock import ANY
mock_send_verify_code.assert_called_once_with(ANY, 'sms', data['mobile_number'])
mock_register_user.assert_called_with(data['name'], mock_register_user.assert_called_with(data['name'],
data['email_address'], data['email_address'],
data['mobile_number'], data['mobile_number'],