Check user invite status not accepted before proceeding with flow.

This commit is contained in:
Adam Shimali
2016-03-10 11:57:40 +00:00
parent 36cab58864
commit 986edfa317
2 changed files with 30 additions and 2 deletions

View File

@@ -3,7 +3,8 @@ from flask import (
url_for,
session,
abort,
render_template
render_template,
flash
)
from notifications_python_client.errors import HTTPError
@@ -20,8 +21,8 @@ from app import (
def accept_invite(token):
try:
invited_user = invite_api_client.check_token(token)
if invited_user.status == 'cancelled':
from_user = user_api_client.get_user(invited_user.from_user)
service = get_service_by_id_or_404(invited_user.service)
@@ -29,6 +30,11 @@ def accept_invite(token):
from_user=from_user.name,
service_name=service['name'])
if invited_user.status == 'accepted':
session.pop('invited_user', None)
flash('You have already accepted this invitation', 'default')
return redirect(url_for('main.service_dashboard', service_id=invited_user.service))
existing_user = user_api_client.get_user_by_email(invited_user.email_address)
session['invited_user'] = invited_user.serialize()
@@ -43,6 +49,7 @@ def accept_invite(token):
return redirect(url_for('main.register_from_invite'))
except HTTPError as e:
if e.status_code == 404:
abort(404)
else: