From 0882c76476d16d5a32e7b12cbba7be7fdee8e428 Mon Sep 17 00:00:00 2001 From: Katie Smith Date: Mon, 5 Aug 2019 13:51:31 +0100 Subject: [PATCH] Add upload letters permission to service settings page The upload_letters permission can only be changed by Platform Admin users. It works in a similar way to the inbound_sms nested permission - you only see the row in the table if you have the 'letter' permission, but the 'letter' and 'upload_letters' are still separate permissions and changing one does not affect the other. --- app/main/views/service_settings.py | 1 + .../service_settings/test_service_setting_permissions.py | 6 ++++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/app/main/views/service_settings.py b/app/main/views/service_settings.py index fbe0ab071..e6da4a540 100644 --- a/app/main/views/service_settings.py +++ b/app/main/views/service_settings.py @@ -68,6 +68,7 @@ PLATFORM_ADMIN_SERVICE_PERMISSIONS = OrderedDict([ ('inbound_sms', {'title': 'Receive inbound SMS', 'requires': 'sms', 'endpoint': '.service_set_inbound_number'}), ('email_auth', {'title': 'User auth type editing'}), ('upload_document', {'title': 'Uploading documents', 'endpoint': '.service_switch_can_upload_document'}), + ('upload_letters', {'title': 'Uploading letters', 'requires': 'letter'}), ]) diff --git a/tests/app/main/views/service_settings/test_service_setting_permissions.py b/tests/app/main/views/service_settings/test_service_setting_permissions.py index ddfcfcfd0..6313c46f0 100644 --- a/tests/app/main/views/service_settings/test_service_setting_permissions.py +++ b/tests/app/main/views/service_settings/test_service_setting_permissions.py @@ -74,12 +74,14 @@ def test_service_set_permission( ({'permissions': []}, '.service_switch_can_upload_document', {}, 'Uploading documents Off Change'), ({'permissions': ['sms']}, '.service_set_inbound_number', {}, 'Receive inbound SMS Off Change'), + ({'permissions': ['letter']}, + '.service_set_permission', {'permission': 'upload_letters'}, 'Uploading letters Off Change'), ]) def test_service_setting_toggles_show(get_service_settings_page, service_one, service_fields, endpoint, kwargs, text): - button_url = url_for(endpoint, **kwargs, service_id=service_one['id']) + link_url = url_for(endpoint, **kwargs, service_id=service_one['id']) service_one.update(service_fields) page = get_service_settings_page() - assert normalize_spaces(page.find('a', {'href': button_url}).find_parent('tr').text.strip()) == text + assert normalize_spaces(page.find('a', {'href': link_url}).find_parent('tr').text.strip()) == text @pytest.mark.parametrize('service_fields, endpoint, index, text', [