Add audit event for inviting users to a service

This commit is contained in:
Katie Smith
2021-03-05 12:19:36 +00:00
parent fed40326da
commit 7ae4017d50
7 changed files with 76 additions and 3 deletions

View File

@@ -27,9 +27,12 @@ def test_existing_user_accept_invite_calls_api_and_redirects_to_dashboard(
mock_add_user_to_service,
mock_get_service,
mocker,
mock_events,
mock_get_user,
):
expected_service = service_one['id']
expected_permissions = {'view_activity', 'send_messages', 'manage_service', 'manage_api_keys'}
mock_audit_event = mocker.patch('app.event_handlers.create_add_user_to_service_event')
response = client.get(url_for('main.accept_invite', token='thisisnotarealtoken'))
@@ -45,6 +48,11 @@ def test_existing_user_accept_invite_calls_api_and_redirects_to_dashboard(
assert response.status_code == 302
assert response.location == url_for('main.service_dashboard', service_id=expected_service, _external=True)
mock_audit_event.assert_called_once_with(
invited_by_id=service_one['users'][0],
service_id=SERVICE_ONE_ID,
user_id=USER_ONE_ID,
)
def test_existing_user_with_no_permissions_or_folder_permissions_accept_invite(
@@ -58,6 +66,8 @@ def test_existing_user_with_no_permissions_or_folder_permissions_accept_invite(
mock_get_users_by_service,
mock_add_user_to_service,
mock_get_service,
mock_events,
mock_get_user,
):
expected_service = service_one['id']
sample_invite['permissions'] = ''
@@ -204,7 +214,8 @@ def test_accept_invite_redirects_if_api_raises_an_error_that_they_are_already_pa
sample_invite,
mock_accept_invite,
mock_get_service,
mock_get_users_by_service
mock_get_users_by_service,
mock_get_user,
):
sample_invite['email_address'] = api_user_active['email_address']
@@ -212,6 +223,7 @@ def test_accept_invite_redirects_if_api_raises_an_error_that_they_are_already_pa
# `existing_user in Users(invited_user.service)` returns False and the right code path is tested
mocker.patch('app.user_api_client.get_user_by_email', return_value=create_api_user_active(with_unique_id=True))
mocker.patch('app.invite_api_client.check_token', return_value=sample_invite)
mock_audit_event = mocker.patch('app.event_handlers.create_add_user_to_service_event')
mocker.patch('app.user_api_client.add_user_to_service', side_effect=HTTPError(
response=Mock(
@@ -226,6 +238,7 @@ def test_accept_invite_redirects_if_api_raises_an_error_that_they_are_already_pa
response = client.get(url_for('main.accept_invite', token='thisisnotarealtoken'), follow_redirects=False)
assert response.location == url_for('main.service_dashboard', service_id=SERVICE_ONE_ID, _external=True)
assert not mock_audit_event.called
def test_existing_signed_out_user_accept_invite_redirects_to_sign_in(
@@ -240,6 +253,8 @@ def test_existing_signed_out_user_accept_invite_redirects_to_sign_in(
mock_accept_invite,
mock_get_service,
mocker,
mock_events,
mock_get_user,
):
expected_service = service_one['id']
expected_permissions = {'view_activity', 'send_messages', 'manage_service', 'manage_api_keys'}
@@ -513,6 +528,8 @@ def test_new_invited_user_verifies_and_added_to_service(
mock_create_event,
mocker,
):
mock_audit_event = mocker.patch('app.event_handlers.create_add_user_to_service_event')
# visit accept token page
response = client.get(url_for('main.accept_invite', token='thisisnotarealtoken'))
assert response.status_code == 302
@@ -547,6 +564,10 @@ def test_new_invited_user_verifies_and_added_to_service(
mock_check_verify_code.assert_called_once_with(new_user_id, '12345', 'sms')
assert service_one['id'] == session['service_id']
mock_audit_event.assert_called_once_with(invited_by_id=service_one['users'][0],
service_id=service_one['id'],
user_id=new_user_id)
raw_html = response.data.decode('utf-8')
page = BeautifulSoup(raw_html, 'html.parser')
assert page.find('h1').text == 'Dashboard'