diff --git a/app/main/views/send.py b/app/main/views/send.py index d885a9800..8b72c3b9a 100644 --- a/app/main/views/send.py +++ b/app/main/views/send.py @@ -43,7 +43,8 @@ from app.utils import ( get_errors_for_csv, Spreadsheet, get_help_argument, - get_template + get_template, + email_or_sms_not_enabled, ) from app.template_previews import TemplatePreview, get_page_count_for_letter @@ -93,8 +94,7 @@ def send_messages(service_id, template_id): db_template = service_api_client.get_service_template(service_id, template_id)['data'] - if (db_template['template_type'] in ['email', 'sms']) \ - and (db_template['template_type'] not in current_service['permissions']): + if email_or_sms_not_enabled(db_template['template_type'], current_service['permissions']): return redirect(url_for( '.action_blocked', service_id=service_id, @@ -176,8 +176,7 @@ def send_test(service_id, template_id): db_template = service_api_client.get_service_template(service_id, template_id)['data'] - if (db_template['template_type'] in ['email', 'sms']) \ - and (db_template['template_type'] not in current_service['permissions']): + if email_or_sms_not_enabled(db_template['template_type'], current_service['permissions']): return redirect(url_for( '.action_blocked', service_id=service_id, diff --git a/app/main/views/templates.py b/app/main/views/templates.py index 276931df8..f2b0f5727 100644 --- a/app/main/views/templates.py +++ b/app/main/views/templates.py @@ -18,7 +18,7 @@ from notifications_utils.recipients import first_column_headings from notifications_python_client.errors import HTTPError from app.main import main -from app.utils import user_has_permissions, get_template, get_help_argument +from app.utils import user_has_permissions, get_template, get_help_argument, email_or_sms_not_enabled from app.template_previews import TemplatePreview, get_page_count_for_letter from app.main.forms import ( ChooseTemplateType, @@ -232,13 +232,7 @@ def add_template_by_type(service_id): template_id=blank_letter['data']['id'], )) - if form.template_type.data in current_service['permissions']: - return redirect(url_for( - '.add_service_template', - service_id=service_id, - template_type=form.template_type.data, - )) - else: + if email_or_sms_not_enabled(form.template_type.data, current_service['permissions']): return redirect(url_for( '.action_blocked', service_id=service_id, @@ -246,6 +240,12 @@ def add_template_by_type(service_id): return_to='add_new_template', template_id='0' )) + else: + return redirect(url_for( + '.add_service_template', + service_id=service_id, + template_type=form.template_type.data, + )) return render_template('views/templates/add.html', form=form) @@ -304,7 +304,8 @@ def add_service_template(service_id, template_type): return redirect( url_for('.view_template', service_id=service_id, template_id=new_template['data']['id']) ) - if (template_type in ['email', 'sms']) and (template_type not in current_service['permissions']): + + if email_or_sms_not_enabled(template_type, current_service['permissions']): return redirect(url_for( '.action_blocked', service_id=service_id, @@ -392,8 +393,7 @@ def edit_service_template(service_id, template_id): db_template = service_api_client.get_service_template(service_id, template_id)['data'] - if (db_template['template_type'] in ['email', 'sms']) \ - and (db_template['template_type'] not in current_service['permissions']): + if email_or_sms_not_enabled(db_template['template_type'], current_service['permissions']): return redirect(url_for( '.action_blocked', service_id=service_id, diff --git a/app/utils.py b/app/utils.py index 5f4a01c84..62daaeab9 100644 --- a/app/utils.py +++ b/app/utils.py @@ -320,3 +320,7 @@ def get_time_left(created_at): past_tense='Data no longer available', # No-one should ever see this precision=1 ) + + +def email_or_sms_not_enabled(template_type, permissions): + return (template_type in ['email', 'sms']) and (template_type not in permissions)