mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-02-05 10:53:28 -05:00
Check user invite status not accepted before proceeding with flow.
This commit is contained in:
@@ -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:
|
||||
|
||||
Reference in New Issue
Block a user