From c17db333d3db7e05d984dc194746267cbdc01381 Mon Sep 17 00:00:00 2001 From: Chris Hill-Scott Date: Mon, 13 Jul 2020 08:43:29 +0100 Subject: [PATCH] Hide email, text message and letter settings MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Services with the broadcast permission won’t be able to send emails, text messages or letters. So we should avoid confusion by removing any reference to these things. --- app/templates/views/service-settings.html | 375 +++++++++--------- tests/app/main/views/test_service_settings.py | 6 + 2 files changed, 195 insertions(+), 186 deletions(-) diff --git a/app/templates/views/service-settings.html b/app/templates/views/service-settings.html index 3b6a6cc7e..9899de72c 100644 --- a/app/templates/views/service-settings.html +++ b/app/templates/views/service-settings.html @@ -47,203 +47,206 @@ {% endcall %} {% endcall %} - {% call mapping_table( - caption='Email settings', - field_headings=['Label', 'Value', 'Action'], - field_headings_visible=False, - caption_visible=True - ) %} + {% if not current_service.has_permission('broadcast') %} + + {% call mapping_table( + caption='Email settings', + field_headings=['Label', 'Value', 'Action'], + field_headings_visible=False, + caption_visible=True + ) %} + + {% call row() %} + {{ text_field('Send emails') }} + {{ boolean_field('email' in current_service.permissions) }} + {{ edit_field( + 'Change', + url_for( + '.service_set_channel', + channel='email', + service_id=current_service.id + ), + permissions=['manage_service'] + )}} + {% endcall %} + + {% call settings_row(if_has_permission='email') %} + {{ text_field('Reply-to email addresses') }} + {% call field(status='default' if current_service.count_email_reply_to_addresses == 0 else '') %} + {{ current_service.default_email_reply_to_address or 'Not set' }} + {% if current_service.count_email_reply_to_addresses > 1 %} +
+ {{ '…and %d more' | format(current_service.count_email_reply_to_addresses - 1) }} +
+ {% endif %} + {% endcall %} + {{ edit_field( + 'Manage', + url_for('.service_email_reply_to', + service_id=current_service.id), + permissions=['manage_service','manage_api_keys'] + ) + }} + {% endcall %} + + {% call settings_row(if_has_permission='email') %} + {{ text_field('Email branding') }} + {{ text_field(current_service.email_branding_name) }} + {{ edit_field( + 'Change', + url_for('.branding_request', service_id=current_service.id, branding_type="email"), + permissions=['manage_service'], + )}} + {% endcall %} + + {% call settings_row(if_has_permission='email') %} + {{ text_field('Send files by email') }} + {{ text_field(current_service.contact_link if current_service.contact_link else "Not set up", truncate=true) }} + {{ edit_field( + 'Manage', + url_for('.send_files_by_email_contact_details', service_id=current_service.id), + permissions=['manage_service'], + )}} + {% endcall %} - {% call row() %} - {{ text_field('Send emails') }} - {{ boolean_field('email' in current_service.permissions) }} - {{ edit_field( - 'Change', - url_for( - '.service_set_channel', - channel='email', - service_id=current_service.id - ), - permissions=['manage_service'] - )}} {% endcall %} - {% call settings_row(if_has_permission='email') %} - {{ text_field('Reply-to email addresses') }} - {% call field(status='default' if current_service.count_email_reply_to_addresses == 0 else '') %} - {{ current_service.default_email_reply_to_address or 'Not set' }} - {% if current_service.count_email_reply_to_addresses > 1 %} -
- {{ '…and %d more' | format(current_service.count_email_reply_to_addresses - 1) }} -
- {% endif %} + {% call mapping_table( + caption='Text message settings', + field_headings=['Label', 'Value', 'Action'], + field_headings_visible=False, + caption_visible=True + ) %} + + {% call row() %} + {{ text_field('Send text messages') }} + {{ boolean_field('sms' in current_service.permissions) }} + {{ edit_field( + 'Change', + url_for( + '.service_set_channel', + service_id=current_service.id, + channel='sms' + ), + permissions=['manage_service'] + )}} {% endcall %} - {{ edit_field( - 'Manage', - url_for('.service_email_reply_to', - service_id=current_service.id), - permissions=['manage_service','manage_api_keys'] + + {% call settings_row(if_has_permission='sms') %} + {{ text_field('Text message senders') }} + {% call field(status='default' if current_service.default_sms_sender == "None" else '') %} + {{ current_service.default_sms_sender | nl2br if current_service.default_sms_sender else 'None'}} + {% if current_service.count_sms_senders > 1 %} +
+ {{ '…and %d more' | format(current_service.count_sms_senders - 1) }} +
+ {% endif %} + {% endcall %} + {{ edit_field( + 'Manage', + url_for('.service_sms_senders', + service_id=current_service.id), + permissions=['manage_service','manage_api_keys'] ) - }} - {% endcall %} - - {% call settings_row(if_has_permission='email') %} - {{ text_field('Email branding') }} - {{ text_field(current_service.email_branding_name) }} - {{ edit_field( - 'Change', - url_for('.branding_request', service_id=current_service.id, branding_type="email"), - permissions=['manage_service'], - )}} - {% endcall %} - - {% call settings_row(if_has_permission='email') %} - {{ text_field('Send files by email') }} - {{ text_field(current_service.contact_link if current_service.contact_link else "Not set up", truncate=true) }} - {{ edit_field( - 'Manage', - url_for('.send_files_by_email_contact_details', service_id=current_service.id), - permissions=['manage_service'], - )}} - {% endcall %} - - {% endcall %} - - {% call mapping_table( - caption='Text message settings', - field_headings=['Label', 'Value', 'Action'], - field_headings_visible=False, - caption_visible=True - ) %} - - {% call row() %} - {{ text_field('Send text messages') }} - {{ boolean_field('sms' in current_service.permissions) }} - {{ edit_field( - 'Change', - url_for( - '.service_set_channel', - service_id=current_service.id, - channel='sms' - ), - permissions=['manage_service'] - )}} - {% endcall %} - - {% call settings_row(if_has_permission='sms') %} - {{ text_field('Text message senders') }} - {% call field(status='default' if current_service.default_sms_sender == "None" else '') %} - {{ current_service.default_sms_sender | nl2br if current_service.default_sms_sender else 'None'}} - {% if current_service.count_sms_senders > 1 %} -
- {{ '…and %d more' | format(current_service.count_sms_senders - 1) }} -
- {% endif %} + }} {% endcall %} - {{ edit_field( - 'Manage', - url_for('.service_sms_senders', - service_id=current_service.id), - permissions=['manage_service','manage_api_keys'] - ) - }} - {% endcall %} - {% call settings_row(if_has_permission='sms') %} - {{ text_field('Start text messages with service name') }} - {{ boolean_field(current_service.prefix_sms) }} - {{ edit_field( - 'Change', - url_for('.service_set_sms_prefix', - service_id=current_service.id), - permissions=['manage_service'] - ) - }} - {% endcall %} - - {% call settings_row(if_has_permission='sms') %} - {{ text_field('Send international text messages') }} - {{ boolean_field('international_sms' in current_service.permissions) }} - {{ edit_field( - 'Change', - url_for('.service_set_international_sms', - service_id=current_service.id), - permissions=['manage_service'] - ) - }} - {% endcall %} - - {% call settings_row(if_has_permission='sms') %} - {{ text_field('Receive text messages') }} - {{ boolean_field('inbound_sms' in current_service.permissions) }} - {{ edit_field( - 'Change', - url_for('.service_set_inbound_sms', - service_id=current_service.id), - permissions=['manage_service'] - ) - }} - {% endcall %} - - {% endcall %} - - {% call mapping_table( - caption='Letter settings', - field_headings=['Label', 'Value', 'Action'], - field_headings_visible=False, - caption_visible=True - ) %} - - {% call row() %} - {{ text_field('Send letters') }} - {{ boolean_field('letter' in current_service.permissions) }} - {{ edit_field( - 'Change', - url_for( - '.service_set_channel', - channel='letter', - service_id=current_service.id - ), - permissions=['manage_service'] - )}} - {% endcall %} - - {% call settings_row(if_has_permission='letter') %} - {{ text_field('Sender addresses') }} - {% call field(status='' if current_service.count_letter_contact_details else 'default') %} - {% if current_service.default_letter_contact_block %} - {{ current_service.default_letter_contact_block_html }} - {% elif current_service.count_letter_contact_details %} - Blank - {% else %} - Not set - {% endif %} - {% if current_service.count_letter_contact_details > 1 %} -
- {{ '…and %d more' | format(current_service.count_letter_contact_details - 1) }} -
- {% endif %} + {% call settings_row(if_has_permission='sms') %} + {{ text_field('Start text messages with service name') }} + {{ boolean_field(current_service.prefix_sms) }} + {{ edit_field( + 'Change', + url_for('.service_set_sms_prefix', + service_id=current_service.id), + permissions=['manage_service'] + ) + }} {% endcall %} - {{ edit_field( - 'Manage', - url_for('.service_letter_contact_details', - service_id=current_service.id), - permissions=['manage_service','manage_api_keys'] - ) - }} + + {% call settings_row(if_has_permission='sms') %} + {{ text_field('Send international text messages') }} + {{ boolean_field('international_sms' in current_service.permissions) }} + {{ edit_field( + 'Change', + url_for('.service_set_international_sms', + service_id=current_service.id), + permissions=['manage_service'] + ) + }} + {% endcall %} + + {% call settings_row(if_has_permission='sms') %} + {{ text_field('Receive text messages') }} + {{ boolean_field('inbound_sms' in current_service.permissions) }} + {{ edit_field( + 'Change', + url_for('.service_set_inbound_sms', + service_id=current_service.id), + permissions=['manage_service'] + ) + }} + {% endcall %} + {% endcall %} - {% call settings_row(if_has_permission='letter') %} - {{ text_field('Letter branding') }} - {{ optional_text_field(current_service.letter_branding.name) }} - {{ edit_field( - 'Change', - url_for('.branding_request', service_id=current_service.id, branding_type="letter"), - permissions=['manage_service'] - )}} - {% endcall %} + {% call mapping_table( + caption='Letter settings', + field_headings=['Label', 'Value', 'Action'], + field_headings_visible=False, + caption_visible=True + ) %} - {% endcall %} + {% call row() %} + {{ text_field('Send letters') }} + {{ boolean_field('letter' in current_service.permissions) }} + {{ edit_field( + 'Change', + url_for( + '.service_set_channel', + channel='letter', + service_id=current_service.id + ), + permissions=['manage_service'] + )}} + {% endcall %} + + {% call settings_row(if_has_permission='letter') %} + {{ text_field('Sender addresses') }} + {% call field(status='' if current_service.count_letter_contact_details else 'default') %} + {% if current_service.default_letter_contact_block %} + {{ current_service.default_letter_contact_block_html }} + {% elif current_service.count_letter_contact_details %} + Blank + {% else %} + Not set + {% endif %} + {% if current_service.count_letter_contact_details > 1 %} +
+ {{ '…and %d more' | format(current_service.count_letter_contact_details - 1) }} +
+ {% endif %} + {% endcall %} + {{ edit_field( + 'Manage', + url_for('.service_letter_contact_details', + service_id=current_service.id), + permissions=['manage_service','manage_api_keys'] + ) + }} + {% endcall %} + + {% call settings_row(if_has_permission='letter') %} + {{ text_field('Letter branding') }} + {{ optional_text_field(current_service.letter_branding.name) }} + {{ edit_field( + 'Change', + url_for('.branding_request', service_id=current_service.id, branding_type="letter"), + permissions=['manage_service'] + )}} + {% endcall %} + + {% endcall %} + {% endif %} {% if current_service.trial_mode %} diff --git a/tests/app/main/views/test_service_settings.py b/tests/app/main/views/test_service_settings.py index 9fc755635..c5f4bb4a2 100644 --- a/tests/app/main/views/test_service_settings.py +++ b/tests/app/main/views/test_service_settings.py @@ -289,6 +289,12 @@ def test_send_files_by_email_row_on_settings_page( 'Letter branding Not set Change', ]), + (['broadcast'], [ + + 'Service name service one Change', + 'Sign-in method Text message code Change', + + ]), ]) def test_should_show_overview_for_service_with_more_things_set( client,