diff --git a/app/main/views/add_service.py b/app/main/views/add_service.py index 05febf569..937c28310 100644 --- a/app/main/views/add_service.py +++ b/app/main/views/add_service.py @@ -30,8 +30,6 @@ def add_service(): service_id = invited_user['service'] user_api_client.add_user_to_service(service_id, user.id, invitation.permissions) invite_api_client.accept_invite(service_id, invitation.id) - - session.pop('invited_user', None) return redirect(url_for('main.service_dashboard', service_id=service_id)) form = AddServiceForm(services_dao.find_all_service_names) diff --git a/app/main/views/dashboard.py b/app/main/views/dashboard.py index 9f7dc1044..e0c2a84ab 100644 --- a/app/main/views/dashboard.py +++ b/app/main/views/dashboard.py @@ -1,4 +1,10 @@ -from flask import (abort, render_template, session) +from flask import ( + abort, + render_template, + session, + flash +) + from flask_login import login_required from app.main import main from app.main.dao.services_dao import get_service_by_id @@ -6,8 +12,6 @@ from app.main.dao import templates_dao from notifications_python_client.errors import HTTPError from app import job_api_client -from app.utils import user_has_permissions - @main.route("/services//dashboard") @login_required @@ -24,6 +28,12 @@ def service_dashboard(service_id): service = get_service_by_id(service_id) session['service_name'] = service['data']['name'] session['service_id'] = service['data']['id'] + + if session.get('invited_user'): + session.pop('invited_user', None) + service_name = service['data']['name'] + message = 'You have sucessfully accepted your invitation and been added to {}'.format(service_name) + flash(message, 'default_with_tick') except HTTPError as e: if e.status_code == 404: abort(404) diff --git a/app/main/views/invites.py b/app/main/views/invites.py index 0df0306fb..662d66cec 100644 --- a/app/main/views/invites.py +++ b/app/main/views/invites.py @@ -30,6 +30,7 @@ def accept_invite(token): service_name=service['name']) existing_user = user_api_client.get_user_by_email(invited_user.email_address) + session['invited_user'] = invited_user.serialize() if existing_user: user_api_client.add_user_to_service(invited_user.service, @@ -38,7 +39,6 @@ def accept_invite(token): invite_api_client.accept_invite(invited_user.service, invited_user.id) return redirect(url_for('main.service_dashboard', service_id=invited_user.service)) else: - session['invited_user'] = invited_user.serialize() return redirect(url_for('main.register_from_invite')) except HTTPError as e: diff --git a/tests/app/main/views/test_accept_invite.py b/tests/app/main/views/test_accept_invite.py index 3a83f7578..4144d4d41 100644 --- a/tests/app/main/views/test_accept_invite.py +++ b/tests/app/main/views/test_accept_invite.py @@ -194,3 +194,6 @@ def test_new_invited_user_verifies_and_added_to_service(app_, assert element.text == 'Test Service' service_link = element.attrs['href'] assert service_link == '/services/{}/dashboard'.format(service_one['id']) + + flash_banner = page.find('div', class_='banner-default-with-tick').string.strip() + assert flash_banner == 'You have sucessfully accepted your invitation and been added to Test Service'