mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-08-19 05:59:44 -04:00
@@ -49,8 +49,9 @@ def old_service_dashboard(service_id):
|
||||
@user_has_permissions()
|
||||
def service_dashboard(service_id):
|
||||
|
||||
if session.get('invited_user'):
|
||||
if session.get('invited_user_id') or session.get('invited_user'):
|
||||
session.pop('invited_user', None)
|
||||
session.pop('invited_user_id', None)
|
||||
session['service_id'] = service_id
|
||||
|
||||
if current_service.has_permission('broadcast'):
|
||||
|
||||
@@ -40,12 +40,14 @@ def accept_invite(token):
|
||||
|
||||
if invited_user.status == 'accepted':
|
||||
session.pop('invited_user', None)
|
||||
session.pop('invited_user_id', None)
|
||||
service = Service.from_id(invited_user.service)
|
||||
if service.has_permission('broadcast'):
|
||||
return redirect(url_for('main.broadcast_tour', service_id=service.id, step_index=1))
|
||||
return redirect(url_for('main.service_dashboard', service_id=invited_user.service))
|
||||
|
||||
session['invited_user'] = invited_user.serialize()
|
||||
session['invited_user_id'] = invited_user.id
|
||||
|
||||
existing_user = User.from_email_address_or_none(invited_user.email_address)
|
||||
|
||||
@@ -103,9 +105,11 @@ def accept_org_invite(token):
|
||||
|
||||
if invited_org_user.status == 'accepted':
|
||||
session.pop('invited_org_user', None)
|
||||
session.pop('invited_org_user_id', None)
|
||||
return redirect(url_for('main.organisation_dashboard', org_id=invited_org_user.organisation))
|
||||
|
||||
session['invited_org_user'] = invited_org_user.serialize()
|
||||
session['invited_org_user_id'] = invited_org_user.id
|
||||
|
||||
existing_user = User.from_email_address_or_none(invited_org_user.email_address)
|
||||
organisation_users = OrganisationUsers(invited_org_user.organisation)
|
||||
|
||||
@@ -36,11 +36,12 @@ def sign_in():
|
||||
if user and user.state == 'pending':
|
||||
return redirect(url_for('main.resend_email_verification', next=redirect_url))
|
||||
|
||||
if user and session.get('invited_user'):
|
||||
if user and (session.get('invited_user') or session.get('invited_user_id')):
|
||||
invited_user = InvitedUser.from_session()
|
||||
if user.email_address.lower() != invited_user.email_address.lower():
|
||||
flash("You cannot accept an invite for another person.")
|
||||
session.pop('invited_user', None)
|
||||
session.pop('invited_user_id', None)
|
||||
abort(403)
|
||||
else:
|
||||
invited_user.accept_invite()
|
||||
|
||||
@@ -16,7 +16,7 @@ from app import user_api_client
|
||||
from app.main import main
|
||||
from app.main.forms import TwoFactorForm
|
||||
from app.models.service import Service
|
||||
from app.models.user import InvitedUser, User
|
||||
from app.models.user import InvitedOrgUser, InvitedUser, User
|
||||
from app.utils import redirect_to_sign_in
|
||||
|
||||
|
||||
@@ -75,7 +75,7 @@ def activate_user(user_id):
|
||||
activated_user = user.activate()
|
||||
activated_user.login()
|
||||
|
||||
invited_user = session.get('invited_user')
|
||||
invited_user = InvitedUser.from_session()
|
||||
if invited_user:
|
||||
service_id = _add_invited_user_to_service(invited_user)
|
||||
service = Service.from_id(service_id)
|
||||
@@ -83,9 +83,9 @@ def activate_user(user_id):
|
||||
return redirect(url_for('main.broadcast_tour', service_id=service.id, step_index=1))
|
||||
return redirect(url_for('main.service_dashboard', service_id=service_id))
|
||||
|
||||
invited_org_user = session.get('invited_org_user')
|
||||
invited_org_user = InvitedOrgUser.from_session()
|
||||
if invited_org_user:
|
||||
user_api_client.add_user_to_organisation(invited_org_user['organisation'], session['user_details']['id'])
|
||||
user_api_client.add_user_to_organisation(invited_org_user.organisation, session['user_details']['id'])
|
||||
|
||||
if organisation_id:
|
||||
return redirect(url_for('main.organisation_dashboard', org_id=organisation_id))
|
||||
@@ -93,10 +93,9 @@ def activate_user(user_id):
|
||||
return redirect(url_for('main.add_service', first='first'))
|
||||
|
||||
|
||||
def _add_invited_user_to_service(invited_user):
|
||||
invitation = InvitedUser(invited_user)
|
||||
def _add_invited_user_to_service(invitation):
|
||||
user = User.from_id(session['user_id'])
|
||||
service_id = invited_user['service']
|
||||
service_id = invitation.service
|
||||
user.add_to_service(
|
||||
service_id,
|
||||
invitation.permissions,
|
||||
|
||||
Reference in New Issue
Block a user