mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-08-20 22:40:31 -04:00
store invited user ids in session
same as the invited org user ids in the previous commit
This commit is contained in:
@@ -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)
|
||||
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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)
|
||||
@@ -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,
|
||||
|
||||
@@ -476,6 +476,12 @@ class InvitedUser(JSONModel):
|
||||
invite_api_client.get_invited_user_for_service(service_id, invited_user_id)
|
||||
)
|
||||
|
||||
@classmethod
|
||||
def by_id(cls, invited_user_id):
|
||||
return cls(
|
||||
invite_api_client.get_invited_user(invited_user_id)
|
||||
)
|
||||
|
||||
def accept_invite(self):
|
||||
invite_api_client.accept_invite(self.service, self.id)
|
||||
|
||||
@@ -515,6 +521,10 @@ class InvitedUser(JSONModel):
|
||||
|
||||
@classmethod
|
||||
def from_session(cls):
|
||||
invited_user_id = session.get('invited_user_id')
|
||||
if invited_user_id:
|
||||
return cls.by_id(invited_user_id)
|
||||
|
||||
invited_user = session.get('invited_user')
|
||||
return cls(invited_user) if invited_user else None
|
||||
|
||||
|
||||
@@ -37,6 +37,11 @@ class InviteApiClient(NotifyAdminAPIClient):
|
||||
'/service/{}/invite'.format(service_id)
|
||||
)['data']
|
||||
|
||||
def get_invited_user(self, invited_user_id):
|
||||
return self.get(
|
||||
f'/invite/service/{invited_user_id}'
|
||||
)['data']
|
||||
|
||||
def get_invited_user_for_service(self, service_id, invited_user_id):
|
||||
return self.get(
|
||||
f'/service/{service_id}/invite/{invited_user_id}'
|
||||
|
||||
Reference in New Issue
Block a user