Removed some un needed flash messages raised as bugs.

In the process found a couple of edge cases of incorrect
use of invitation links by other users which are now
handled.
This commit is contained in:
Adam Shimali
2016-03-30 16:16:34 +01:00
parent 8391af9d40
commit fc01735d70
4 changed files with 102 additions and 44 deletions

View File

@@ -3,7 +3,8 @@ from flask import (
url_for,
session,
flash,
render_template
render_template,
abort
)
@@ -17,11 +18,18 @@ from app import (
service_api_client
)
from flask_login import current_user
@main.route("/invitation/<token>")
def accept_invite(token):
invited_user = invite_api_client.check_token(token)
if not current_user.is_anonymous() and current_user.email_address != invited_user.email_address:
flash("You can't accept an invite for another person.")
abort(403)
if invited_user.status == 'cancelled':
from_user = user_api_client.get_user(invited_user.from_user)
service = service_api_client.get_service(invited_user.service)['data']
@@ -31,7 +39,6 @@ def accept_invite(token):
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))
session['invited_user'] = invited_user.serialize()
@@ -41,15 +48,11 @@ def accept_invite(token):
if existing_user:
if existing_user in service_users:
session.pop('invited_user', None)
flash('You have already accepted an invitation to this service', 'default')
invite_api_client.accept_invite(invited_user.service, invited_user.id)
return redirect(url_for('main.service_dashboard', service_id=invited_user.service))
else:
user_api_client.add_user_to_service(invited_user.service,
existing_user.id,
invited_user.permissions)
invite_api_client.accept_invite(invited_user.service, invited_user.id)
return redirect(url_for('main.service_dashboard', service_id=invited_user.service))
else:
return redirect(url_for('main.register_from_invite'))