Merge pull request #218 from alphagov/cancel-invited-user

Cancel invited user
This commit is contained in:
Adam Shimali
2016-03-02 17:31:43 +00:00
4 changed files with 47 additions and 18 deletions

View File

@@ -4,8 +4,7 @@ from flask import (
redirect,
abort,
url_for,
flash
)
flash)
from flask_login import (
login_required,
@@ -79,7 +78,7 @@ def invite_user(service_id):
@main.route("/services/<service_id>/users/<user_id>", methods=['GET', 'POST'])
@login_required
def edit_user(service_id, user_id):
def edit_user_permissions(service_id, user_id):
if request.method == 'POST':
return redirect(url_for('.manage_users', service_id=service_id))
@@ -116,6 +115,13 @@ def delete_user(service_id, user_id):
)
@main.route("/services/<service_id>/cancel-invited-user/<invited_user_id>", methods=['GET'])
def cancel_invited_user(service_id, invited_user_id):
invite_api_client.cancel_invited_user(service_id=service_id, invited_user_id=invited_user_id)
return redirect(url_for('main.manage_users', service_id=service_id))
def _get_permissions(form):
permissions = []
if form.get('send_messages') and form['send_messages'] == 'yes':

View File

@@ -1,3 +1,4 @@
from notifications_python_client.base import BaseAPIClient
from app.notify_client.models import InvitedUser
@@ -27,17 +28,21 @@ class InviteApiClient(BaseAPIClient):
endpoint = '/service/{}/invite'.format(service_id)
resp = self.get(endpoint)
invites = resp['data']
invited_users = _get_invited_users(invites)
invited_users = self._get_invited_users(invites)
return invited_users
def accept_invite(self, token):
resp = self.get(url='/invite/{}'.format(token))
return InvitedUser(**resp['data'])
def cancel_invited_user(self, service_id, invited_user_id):
data = {'status': 'cancelled'}
self.post(url='/service/{0}/invite/{1}'.format(service_id, invited_user_id),
data=data)
def _get_invited_users(invites):
invited_users = []
for invite in invites:
invited_user = InvitedUser(**invite)
invited_users.append(invited_user)
return invited_users
def _get_invited_users(self, invites):
invited_users = []
for invite in invites:
invited_user = InvitedUser(**invite)
invited_users.append(invited_user)
return invited_users

View File

@@ -31,9 +31,6 @@ Manage users GOV.UK Notify
{{ boolean_field(item.has_permissions(service_id, 'send_messages')) }}
{{ boolean_field(item.has_permissions(service_id, 'manage_service')) }}
{{ boolean_field(item.has_permissions(service_id, 'manage_api_keys')) }}
{% call field(align='right') %}
<a href="{{ url_for('.edit_user', service_id=service_id, user_id=item.id)}}">Change</a>
{% endcall %}
{% endcall %}
{% if invited_users %}
@@ -46,9 +43,15 @@ Manage users GOV.UK Notify
{{ boolean_field(item.has_permissions('send_messages')) }}
{{ boolean_field(item.has_permissions('manage_service')) }}
{{ boolean_field(item.has_permissions('manage_api_keys')) }}
{% call field(align='right') %}
<a href="{{ url_for('.edit_user', service_id=service_id, user_id=item.id)}}">Change</a>
{% endcall %}
{% if item.status == 'pending' %}
{% call field(align='right') %}
<a href="{{ url_for('.cancel_invited_user', service_id=service_id, invited_user_id=item.id)}}">Cancel invitation</a>
{% endcall %}
{% else %}
{% call field() %}
{{ item.status }}
{% endcall %}
{% endif %}
{% endcall %}
{% endif %}