mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-09-02 17:48:50 -04:00
[WIP] Start of user accepting invite.
This commit only deals with acceptance by users who are already in system. Changed invite client to return invited user objects instead of dictionaries. Added commented out test. fixed up fixtures to return invited user object for invites
This commit is contained in:
@@ -3,7 +3,24 @@ from flask import Blueprint
|
||||
main = Blueprint('main', __name__)
|
||||
|
||||
from app.main.views import (
|
||||
index, sign_in, sign_out, register, two_factor, verify, send, add_service,
|
||||
code_not_received, jobs, dashboard, templates, service_settings, forgot_password,
|
||||
new_password, styleguide, user_profile, choose_service, api_keys, manage_users
|
||||
index,
|
||||
sign_in,
|
||||
sign_out,
|
||||
register,
|
||||
two_factor,
|
||||
verify,
|
||||
send,
|
||||
add_service,
|
||||
code_not_received,
|
||||
jobs, dashboard,
|
||||
templates,
|
||||
service_settings,
|
||||
forgot_password,
|
||||
new_password,
|
||||
styleguide,
|
||||
user_profile,
|
||||
choose_service,
|
||||
api_keys,
|
||||
manage_users,
|
||||
invites
|
||||
)
|
||||
|
||||
34
app/main/views/invites.py
Normal file
34
app/main/views/invites.py
Normal file
@@ -0,0 +1,34 @@
|
||||
from flask import (
|
||||
redirect,
|
||||
url_for,
|
||||
abort
|
||||
)
|
||||
|
||||
from notifications_python_client.errors import HTTPError
|
||||
|
||||
from app.main import main
|
||||
from app import (
|
||||
invite_api_client,
|
||||
user_api_client
|
||||
)
|
||||
|
||||
|
||||
@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'])
|
||||
|
||||
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:
|
||||
# TODO implement registration flow for new users
|
||||
abort(404)
|
||||
except HTTPError as e:
|
||||
if e.status_code == 404:
|
||||
abort(404)
|
||||
else:
|
||||
raise e
|
||||
@@ -58,8 +58,8 @@ def invite_user(service_id):
|
||||
email_address = form.email_address.data
|
||||
permissions = _get_permissions(request.form)
|
||||
try:
|
||||
resp = invite_api_client.create_invite(current_user.id, service_id, email_address, permissions)
|
||||
flash('Invite sent to {}'.format(resp['email_address']), 'default_with_tick')
|
||||
invited_user = invite_api_client.create_invite(current_user.id, service_id, email_address, permissions)
|
||||
flash('Invite sent to {}'.format(invited_user.email_address), 'default_with_tick')
|
||||
return redirect(url_for('.manage_users', service_id=service_id))
|
||||
|
||||
except HTTPError as e:
|
||||
|
||||
Reference in New Issue
Block a user