[WIP] pass invite instead of permissions to make update of invite easier if all goes well

This commit is contained in:
Adam Shimali
2016-03-03 15:26:18 +00:00
parent 0fd2572b08
commit 1ff9d671eb
6 changed files with 52 additions and 33 deletions

View File

@@ -10,6 +10,8 @@ from flask_login import login_required
from app.main import main
from app.main.dao import services_dao, users_dao
from app.main.forms import AddServiceForm
from app.notify_client.models import InvitedUser
from app import user_api_client
@@ -19,10 +21,11 @@ def add_service():
invited_user = session.get('invited_user')
if invited_user:
invitation = InvitedUser(**invited_user)
# if invited user add to service and redirect to dashboard
user = users_dao.get_user_by_id(session['user_id'])
service_id = invited_user['service']
user_api_client.add_user_to_service(service_id, user.id)
user_api_client.add_user_to_service(service_id, user.id, invitation)
session.pop('invited_user', None)
return redirect(url_for('main.service_dashboard', service_id=service_id))

View File

@@ -1,12 +1,9 @@
from flask import (
redirect,
url_for,
abort,
session
)
from notifications_python_client.errors import HTTPError
from app.main import main
from app import (
invite_api_client,
@@ -17,20 +14,14 @@ from app import (
@main.route("/invitation/<token>")
def accept_invite(token):
try:
invited_user = invite_api_client.accept_invite(token)
existing_user = user_api_client.get_user_by_email(invited_user.email_address)
invited_user = invite_api_client.accept_invite(token)
existing_user = user_api_client.get_user_by_email(invited_user.email_address)
if existing_user:
user_api_client.add_user_to_service(invited_user.service,
existing_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:
if e.status_code == 404:
abort(404)
else:
raise e
if existing_user:
user_api_client.add_user_to_service(invited_user.service,
existing_user.id,
invited_user)
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'))