From b2e6d149588a6af499334ba88041fbff39b6352b Mon Sep 17 00:00:00 2001 From: Pea Tyczynska Date: Mon, 17 Feb 2020 15:32:19 +0000 Subject: [PATCH] Enable users to turn send file by email setting on and off --- app/main/views/service_settings.py | 38 ++++++++++++++++++++--- app/templates/views/service-settings.html | 10 ++++++ 2 files changed, 44 insertions(+), 4 deletions(-) diff --git a/app/main/views/service_settings.py b/app/main/views/service_settings.py index 75de09ad6..f0ddc67d1 100644 --- a/app/main/views/service_settings.py +++ b/app/main/views/service_settings.py @@ -67,10 +67,16 @@ from app.utils import ( PLATFORM_ADMIN_SERVICE_PERMISSIONS = OrderedDict([ ('inbound_sms', {'title': 'Receive inbound SMS', 'requires': 'sms', 'endpoint': '.service_set_inbound_number'}), ('email_auth', {'title': 'Email authentication'}), - ('upload_document', {'title': 'Send files by email', 'endpoint': '.service_switch_can_upload_document'}), ('upload_letters', {'title': 'Uploading letters', 'requires': 'letter'}), ]) +SERVICE_SETTINGS = OrderedDict([ + ( + 'upload_document', + {'title': 'Send files by email', 'endpoint': '.service_switch_can_upload_document', 'type': 'email'} + ), +]) + @main.route("/services//service-settings") @user_has_permissions('manage_service', 'manage_api_keys') @@ -294,11 +300,35 @@ def service_set_permission(service_id, permission): ) +@main.route("/services//service-settings/", methods=["GET", "POST"]) +@user_has_permissions('manage_service') +def service_set_setting(service_id, setting): + if setting not in SERVICE_SETTINGS: + abort(404) + + title = SERVICE_SETTINGS[setting]['title'] + form = ServiceOnOffSettingForm( + name=title, + enabled=current_service.has_permission(setting) + ) + + if form.validate_on_submit(): + current_service.force_permission(setting, on=form.enabled.data) + + return redirect(url_for(".service_settings", service_id=service_id)) + + return render_template( + 'views/service-settings/set-service-setting.html', + title=title, + form=form, + ) + + @main.route("/services//service-settings/can-upload-document", methods=['GET', 'POST']) -@user_is_platform_admin +@user_has_permissions('manage_service') def service_switch_can_upload_document(service_id): if current_service.contact_link: - return redirect(url_for('.service_set_permission', service_id=service_id, permission='upload_document')) + return redirect(url_for('.service_set_setting', service_id=service_id, setting='upload_document')) form = ServiceContactDetailsForm() @@ -309,7 +339,7 @@ def service_switch_can_upload_document(service_id): contact_link=form.data[contact_type] ) - return redirect(url_for('.service_set_permission', service_id=service_id, permission='upload_document')) + return redirect(url_for('.service_set_setting', service_id=service_id, setting='upload_document')) return render_template('views/service-settings/contact_link.html', form=form) diff --git a/app/templates/views/service-settings.html b/app/templates/views/service-settings.html index 3b1db42c0..132aeb574 100644 --- a/app/templates/views/service-settings.html +++ b/app/templates/views/service-settings.html @@ -110,6 +110,16 @@ )}} {% endcall %} + {% call settings_row(if_has_permission='email') %} + {{ text_field('Send files by email') }} + {{ boolean_field('upload_document' in current_service.permissions) }} + {{ edit_field( + 'Change', + url_for('.service_switch_can_upload_document', service_id=current_service.id), + permissions=['manage_service'], + )}} + {% endcall %} + {% endcall %} {% call mapping_table(