mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-09-04 09:08:26 -04:00
Have permissions decorators check user signed in
Rather than force us to write the decorators in a specific order let’s just have one decorator call the other. This should make fewer lines of code, and fewer annoying test failures. It also means that the same way of raising a `401` (through the `current_app` method) is used everywhere.
This commit is contained in:
@@ -3,7 +3,7 @@ from string import ascii_uppercase
|
||||
|
||||
from dateutil.parser import parse
|
||||
from flask import abort, flash, redirect, render_template, request, url_for
|
||||
from flask_login import current_user, login_required
|
||||
from flask_login import current_user
|
||||
from markupsafe import Markup
|
||||
from notifications_python_client.errors import HTTPError
|
||||
from notifications_utils.formatters import nl2br
|
||||
@@ -47,7 +47,6 @@ form_objects = {
|
||||
|
||||
@main.route("/services/<service_id>/templates/<uuid:template_id>")
|
||||
@user_has_permissions()
|
||||
@login_required
|
||||
def view_template(service_id, template_id):
|
||||
template = current_service.get_template(template_id)
|
||||
template_folder = current_service.get_template_folder(template['folder'])
|
||||
@@ -88,7 +87,6 @@ def view_template(service_id, template_id):
|
||||
|
||||
@main.route("/services/<service_id>/start-tour/<uuid:template_id>")
|
||||
@user_has_permissions('view_activity')
|
||||
@login_required
|
||||
def start_tour(service_id, template_id):
|
||||
|
||||
template = current_service.get_template(template_id)
|
||||
@@ -112,7 +110,6 @@ def start_tour(service_id, template_id):
|
||||
@main.route("/services/<service_id>/templates/<template_type>", methods=['GET', 'POST'])
|
||||
@main.route("/services/<service_id>/templates/<template_type>/folders/<template_folder_id>", methods=['GET', 'POST'])
|
||||
@user_has_permissions()
|
||||
@login_required
|
||||
def choose_template(service_id, template_type='all', template_folder_id=None):
|
||||
template_folder = current_service.get_template_folder(template_folder_id)
|
||||
|
||||
@@ -221,7 +218,6 @@ def get_template_nav_items(template_folder_id):
|
||||
|
||||
@main.route("/services/<service_id>/templates/<template_id>.<filetype>")
|
||||
@user_has_permissions()
|
||||
@login_required
|
||||
def view_letter_template_preview(service_id, template_id, filetype):
|
||||
if filetype not in ('pdf', 'png'):
|
||||
abort(404)
|
||||
@@ -232,7 +228,6 @@ def view_letter_template_preview(service_id, template_id, filetype):
|
||||
|
||||
|
||||
@main.route("/templates/letter-preview-image/<filename>")
|
||||
@login_required
|
||||
@user_is_platform_admin
|
||||
def letter_branding_preview_image(filename):
|
||||
template = {
|
||||
@@ -276,7 +271,6 @@ def _view_template_version(service_id, template_id, version, letters_as_pdf=Fals
|
||||
|
||||
@main.route("/services/<service_id>/templates/<template_id>/version/<int:version>")
|
||||
@user_has_permissions()
|
||||
@login_required
|
||||
def view_template_version(service_id, template_id, version):
|
||||
return render_template(
|
||||
'views/templates/template_history.html',
|
||||
@@ -286,7 +280,6 @@ def view_template_version(service_id, template_id, version):
|
||||
|
||||
@main.route("/services/<service_id>/templates/<template_id>/version/<int:version>.<filetype>")
|
||||
@user_has_permissions()
|
||||
@login_required
|
||||
def view_template_version_preview(service_id, template_id, version, filetype):
|
||||
db_template = current_service.get_template(template_id, version=version)
|
||||
return TemplatePreview.from_database_object(db_template, filetype)
|
||||
@@ -338,7 +331,6 @@ def _add_template_by_type(template_type, template_folder_id):
|
||||
@main.route("/services/<service_id>/templates/copy/from-service/<uuid:from_service>")
|
||||
@main.route("/services/<service_id>/templates/copy/from-service/<uuid:from_service>/from-folder/<uuid:from_folder>")
|
||||
@user_has_permissions('manage_templates')
|
||||
@login_required
|
||||
def choose_template_to_copy(
|
||||
service_id,
|
||||
from_service=None,
|
||||
@@ -374,7 +366,6 @@ def choose_template_to_copy(
|
||||
|
||||
@main.route("/services/<service_id>/templates/copy/<uuid:template_id>", methods=['GET', 'POST'])
|
||||
@user_has_permissions('manage_templates')
|
||||
@login_required
|
||||
def copy_template(service_id, template_id):
|
||||
from_service = request.args.get('from_service')
|
||||
|
||||
@@ -418,7 +409,6 @@ def _get_template_copy_name(template, existing_templates):
|
||||
|
||||
@main.route("/services/<service_id>/templates/action-blocked/<notification_type>/<return_to>/<template_id>")
|
||||
@user_has_permissions('manage_templates')
|
||||
@login_required
|
||||
def action_blocked(service_id, notification_type, return_to, template_id):
|
||||
if notification_type == 'sms':
|
||||
notification_type = 'text messages'
|
||||
@@ -436,7 +426,6 @@ def action_blocked(service_id, notification_type, return_to, template_id):
|
||||
|
||||
@main.route("/services/<service_id>/templates/folders/<template_folder_id>/manage", methods=['GET', 'POST'])
|
||||
@user_has_permissions('manage_templates')
|
||||
@login_required
|
||||
def manage_template_folder(service_id, template_folder_id):
|
||||
template_folder = current_service.get_template_folder_with_user_permission_or_403(template_folder_id, current_user)
|
||||
form = TemplateFolderForm(
|
||||
@@ -471,7 +460,6 @@ def manage_template_folder(service_id, template_folder_id):
|
||||
|
||||
@main.route("/services/<service_id>/templates/folders/<template_folder_id>/delete", methods=['GET', 'POST'])
|
||||
@user_has_permissions('manage_templates')
|
||||
@login_required
|
||||
def delete_template_folder(service_id, template_folder_id):
|
||||
template_folder = current_service.get_template_folder_with_user_permission_or_403(template_folder_id, current_user)
|
||||
|
||||
@@ -516,7 +504,6 @@ def delete_template_folder(service_id, template_folder_id):
|
||||
@main.route("/services/<service_id>/templates/folders/<template_folder_id>/add-<template_type>",
|
||||
methods=['GET', 'POST'])
|
||||
@user_has_permissions('manage_templates')
|
||||
@login_required
|
||||
def add_service_template(service_id, template_type, template_folder_id=None):
|
||||
|
||||
if template_type not in ['sms', 'email', 'letter']:
|
||||
@@ -578,7 +565,6 @@ def abort_403_if_not_admin_user():
|
||||
|
||||
@main.route("/services/<service_id>/templates/<template_id>/edit", methods=['GET', 'POST'])
|
||||
@user_has_permissions('manage_templates')
|
||||
@login_required
|
||||
def edit_service_template(service_id, template_id):
|
||||
template = current_service.get_template_with_user_permission_or_403(template_id, current_user)
|
||||
template['template_content'] = template['content']
|
||||
@@ -661,7 +647,6 @@ def edit_service_template(service_id, template_id):
|
||||
|
||||
@main.route("/services/<service_id>/templates/<template_id>/delete", methods=['GET', 'POST'])
|
||||
@user_has_permissions('manage_templates')
|
||||
@login_required
|
||||
def delete_service_template(service_id, template_id):
|
||||
template = current_service.get_template_with_user_permission_or_403(template_id, current_user)
|
||||
|
||||
@@ -711,7 +696,6 @@ def delete_service_template(service_id, template_id):
|
||||
|
||||
@main.route("/services/<service_id>/templates/<template_id>/redact", methods=['GET'])
|
||||
@user_has_permissions('manage_templates')
|
||||
@login_required
|
||||
def confirm_redact_template(service_id, template_id):
|
||||
template = current_service.get_template_with_user_permission_or_403(template_id, current_user)
|
||||
|
||||
@@ -736,7 +720,6 @@ def confirm_redact_template(service_id, template_id):
|
||||
|
||||
@main.route("/services/<service_id>/templates/<template_id>/redact", methods=['POST'])
|
||||
@user_has_permissions('manage_templates')
|
||||
@login_required
|
||||
def redact_template(service_id, template_id):
|
||||
|
||||
service_api_client.redact_service_template(service_id, template_id)
|
||||
@@ -755,7 +738,6 @@ def redact_template(service_id, template_id):
|
||||
|
||||
@main.route('/services/<service_id>/templates/<template_id>/versions')
|
||||
@user_has_permissions('view_activity')
|
||||
@login_required
|
||||
def view_template_versions(service_id, template_id):
|
||||
return render_template(
|
||||
'views/templates/choose_history.html',
|
||||
@@ -779,7 +761,6 @@ def view_template_versions(service_id, template_id):
|
||||
|
||||
@main.route('/services/<service_id>/templates/<template_id>/set-template-sender', methods=['GET', 'POST'])
|
||||
@user_has_permissions('manage_templates')
|
||||
@login_required
|
||||
def set_template_sender(service_id, template_id):
|
||||
template = current_service.get_template_with_user_permission_or_403(template_id, current_user)
|
||||
sender_details = get_template_sender_form_dict(service_id, template)
|
||||
@@ -810,7 +791,6 @@ def set_template_sender(service_id, template_id):
|
||||
|
||||
@main.route('/services/<service_id>/templates/<template_id>/edit-postage', methods=['GET', 'POST'])
|
||||
@user_has_permissions('manage_templates')
|
||||
@login_required
|
||||
def edit_template_postage(service_id, template_id):
|
||||
template = current_service.get_template_with_user_permission_or_403(template_id, current_user)
|
||||
if template["template_type"] != "letter":
|
||||
|
||||
Reference in New Issue
Block a user