mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-05-05 16:38:59 -04:00
Merge pull request #641 from alphagov/platform-admins-invite-users
Added invite user button for platform admins on any service
This commit is contained in:
@@ -22,7 +22,7 @@ Manage users – GOV.UK Notify
|
|||||||
Team members
|
Team members
|
||||||
</h1>
|
</h1>
|
||||||
</div>
|
</div>
|
||||||
{% if current_user.has_permissions(['manage_users']) %}
|
{% if current_user.has_permissions(['manage_users'], admin_override=True) %}
|
||||||
<div class="column-one-third">
|
<div class="column-one-third">
|
||||||
<a href="{{ url_for('.invite_user', service_id=current_service.id) }}" class="button align-with-heading">Invite team member</a>
|
<a href="{{ url_for('.invite_user', service_id=current_service.id) }}" class="button align-with-heading">Invite team member</a>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -6,10 +6,10 @@ from tests.conftest import service_one as service_1
|
|||||||
|
|
||||||
|
|
||||||
def test_should_show_overview_page(
|
def test_should_show_overview_page(
|
||||||
app_,
|
app_,
|
||||||
active_user_with_permissions,
|
active_user_with_permissions,
|
||||||
mocker,
|
mocker,
|
||||||
mock_get_invites_for_service
|
mock_get_invites_for_service
|
||||||
):
|
):
|
||||||
service = service_1(active_user_with_permissions)
|
service = service_1(active_user_with_permissions)
|
||||||
with app_.test_request_context():
|
with app_.test_request_context():
|
||||||
@@ -24,9 +24,9 @@ def test_should_show_overview_page(
|
|||||||
|
|
||||||
|
|
||||||
def test_should_show_page_for_one_user(
|
def test_should_show_page_for_one_user(
|
||||||
app_,
|
app_,
|
||||||
active_user_with_permissions,
|
active_user_with_permissions,
|
||||||
mocker
|
mocker
|
||||||
):
|
):
|
||||||
service = service_1(active_user_with_permissions)
|
service = service_1(active_user_with_permissions)
|
||||||
with app_.test_request_context():
|
with app_.test_request_context():
|
||||||
@@ -38,16 +38,15 @@ def test_should_show_page_for_one_user(
|
|||||||
|
|
||||||
|
|
||||||
def test_edit_user_permissions(
|
def test_edit_user_permissions(
|
||||||
app_,
|
app_,
|
||||||
active_user_with_permissions,
|
active_user_with_permissions,
|
||||||
mocker,
|
mocker,
|
||||||
mock_get_invites_for_service,
|
mock_get_invites_for_service,
|
||||||
mock_set_user_permissions
|
mock_set_user_permissions
|
||||||
):
|
):
|
||||||
service = service_1(active_user_with_permissions)
|
service = service_1(active_user_with_permissions)
|
||||||
with app_.test_request_context():
|
with app_.test_request_context():
|
||||||
with app_.test_client() as client:
|
with app_.test_client() as client:
|
||||||
|
|
||||||
client.login(active_user_with_permissions, mocker, service)
|
client.login(active_user_with_permissions, mocker, service)
|
||||||
response = client.post(url_for(
|
response = client.post(url_for(
|
||||||
'main.edit_user_permissions', service_id=service['id'], user_id=active_user_with_permissions.id
|
'main.edit_user_permissions', service_id=service['id'], user_id=active_user_with_permissions.id
|
||||||
@@ -77,12 +76,12 @@ def test_edit_user_permissions(
|
|||||||
|
|
||||||
|
|
||||||
def test_edit_some_user_permissions(
|
def test_edit_some_user_permissions(
|
||||||
app_,
|
app_,
|
||||||
mocker,
|
mocker,
|
||||||
active_user_with_permissions,
|
active_user_with_permissions,
|
||||||
sample_invite,
|
sample_invite,
|
||||||
mock_get_invites_for_service,
|
mock_get_invites_for_service,
|
||||||
mock_set_user_permissions
|
mock_set_user_permissions
|
||||||
):
|
):
|
||||||
service = service_1(active_user_with_permissions)
|
service = service_1(active_user_with_permissions)
|
||||||
data = [InvitedUser(**sample_invite)]
|
data = [InvitedUser(**sample_invite)]
|
||||||
@@ -116,9 +115,9 @@ def test_edit_some_user_permissions(
|
|||||||
|
|
||||||
|
|
||||||
def test_should_show_page_for_inviting_user(
|
def test_should_show_page_for_inviting_user(
|
||||||
app_,
|
app_,
|
||||||
active_user_with_permissions,
|
active_user_with_permissions,
|
||||||
mocker
|
mocker
|
||||||
):
|
):
|
||||||
service = service_1(active_user_with_permissions)
|
service = service_1(active_user_with_permissions)
|
||||||
with app_.test_request_context():
|
with app_.test_request_context():
|
||||||
@@ -131,10 +130,10 @@ def test_should_show_page_for_inviting_user(
|
|||||||
|
|
||||||
|
|
||||||
def test_invite_user(
|
def test_invite_user(
|
||||||
app_,
|
app_,
|
||||||
active_user_with_permissions,
|
active_user_with_permissions,
|
||||||
mocker,
|
mocker,
|
||||||
sample_invite
|
sample_invite
|
||||||
):
|
):
|
||||||
service = service_1(active_user_with_permissions)
|
service = service_1(active_user_with_permissions)
|
||||||
email_address = 'test@example.gov.uk'
|
email_address = 'test@example.gov.uk'
|
||||||
@@ -214,7 +213,6 @@ def test_manage_users_does_not_show_accepted_invite(app_,
|
|||||||
mocker,
|
mocker,
|
||||||
active_user_with_permissions,
|
active_user_with_permissions,
|
||||||
sample_invite):
|
sample_invite):
|
||||||
|
|
||||||
import uuid
|
import uuid
|
||||||
invited_user_id = uuid.uuid4()
|
invited_user_id = uuid.uuid4()
|
||||||
sample_invite['id'] = invited_user_id
|
sample_invite['id'] = invited_user_id
|
||||||
@@ -238,10 +236,10 @@ def test_manage_users_does_not_show_accepted_invite(app_,
|
|||||||
|
|
||||||
|
|
||||||
def test_user_cant_invite_themselves(
|
def test_user_cant_invite_themselves(
|
||||||
app_,
|
app_,
|
||||||
mocker,
|
mocker,
|
||||||
active_user_with_permissions,
|
active_user_with_permissions,
|
||||||
mock_create_invite
|
mock_create_invite
|
||||||
):
|
):
|
||||||
service = service_1(active_user_with_permissions)
|
service = service_1(active_user_with_permissions)
|
||||||
with app_.test_request_context():
|
with app_.test_request_context():
|
||||||
@@ -315,3 +313,20 @@ def test_remove_user_from_service(app_,
|
|||||||
'main.manage_users', service_id=service_one['id'], _external=True)
|
'main.manage_users', service_id=service_one['id'], _external=True)
|
||||||
mock_remove_user_from_service.assert_called_once_with(service_one['id'],
|
mock_remove_user_from_service.assert_called_once_with(service_one['id'],
|
||||||
str(active_user_with_permissions.id))
|
str(active_user_with_permissions.id))
|
||||||
|
|
||||||
|
|
||||||
|
def test_can_invite_user_as_platform_admin(
|
||||||
|
app_,
|
||||||
|
service_one,
|
||||||
|
platform_admin_user,
|
||||||
|
active_user_with_permissions,
|
||||||
|
mock_get_invites_for_service,
|
||||||
|
mocker):
|
||||||
|
with app_.test_request_context():
|
||||||
|
with app_.test_client() as client:
|
||||||
|
mocker.patch('app.user_api_client.get_users_for_service', return_value=[active_user_with_permissions])
|
||||||
|
|
||||||
|
client.login(platform_admin_user, mocker, service_one)
|
||||||
|
response = client.get(url_for('main.manage_users', service_id=service_one['id']))
|
||||||
|
resp_text = response.get_data(as_text=True)
|
||||||
|
assert url_for('.invite_user', service_id=service_one['id']) in resp_text
|
||||||
|
|||||||
Reference in New Issue
Block a user