mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-09-05 02:58:25 -04:00
Allow users with new broadcast permissions access to routes
Added two new permissions - `create_broadcasts` and `approve_broadcasts`. These new permissions get added to the `has_permissions` decorator of the broadcast routes to allow the routes to be accessed with either the old permissions on the new ones while we switch over. We were using the `send_messages` permission for the broadcast routes. By having two new permissions we can allow a more granular control of these routes.
This commit is contained in:
@@ -115,7 +115,7 @@ def get_broadcast_dashboard_partials(service_id):
|
||||
|
||||
|
||||
@main.route('/services/<uuid:service_id>/new-broadcast', methods=['GET', 'POST'])
|
||||
@user_has_permissions('send_messages', restrict_admin_usage=True)
|
||||
@user_has_permissions('send_messages', 'create_broadcasts', restrict_admin_usage=True)
|
||||
@service_has_permission('broadcast')
|
||||
def new_broadcast(service_id):
|
||||
form = NewBroadcastForm()
|
||||
@@ -138,7 +138,7 @@ def new_broadcast(service_id):
|
||||
|
||||
|
||||
@main.route('/services/<uuid:service_id>/write-new-broadcast', methods=['GET', 'POST'])
|
||||
@user_has_permissions('send_messages', restrict_admin_usage=True)
|
||||
@user_has_permissions('send_messages', 'create_broadcasts', restrict_admin_usage=True)
|
||||
@service_has_permission('broadcast')
|
||||
def write_new_broadcast(service_id):
|
||||
form = BroadcastTemplateForm()
|
||||
@@ -162,7 +162,7 @@ def write_new_broadcast(service_id):
|
||||
|
||||
|
||||
@main.route('/services/<uuid:service_id>/new-broadcast/<uuid:template_id>')
|
||||
@user_has_permissions('send_messages', restrict_admin_usage=True)
|
||||
@user_has_permissions('send_messages', 'create_broadcasts', restrict_admin_usage=True)
|
||||
@service_has_permission('broadcast')
|
||||
def broadcast(service_id, template_id):
|
||||
return redirect(url_for(
|
||||
@@ -176,7 +176,7 @@ def broadcast(service_id, template_id):
|
||||
|
||||
|
||||
@main.route('/services/<uuid:service_id>/broadcast/<uuid:broadcast_message_id>/areas')
|
||||
@user_has_permissions('send_messages', restrict_admin_usage=True)
|
||||
@user_has_permissions('send_messages', 'create_broadcasts', restrict_admin_usage=True)
|
||||
@service_has_permission('broadcast')
|
||||
def preview_broadcast_areas(service_id, broadcast_message_id):
|
||||
broadcast_message = BroadcastMessage.from_id(
|
||||
@@ -203,7 +203,7 @@ def preview_broadcast_areas(service_id, broadcast_message_id):
|
||||
|
||||
|
||||
@main.route('/services/<uuid:service_id>/broadcast/<uuid:broadcast_message_id>/libraries')
|
||||
@user_has_permissions('send_messages', restrict_admin_usage=True)
|
||||
@user_has_permissions('send_messages', 'create_broadcasts', restrict_admin_usage=True)
|
||||
@service_has_permission('broadcast')
|
||||
def choose_broadcast_library(service_id, broadcast_message_id):
|
||||
return render_template(
|
||||
@@ -220,7 +220,7 @@ def choose_broadcast_library(service_id, broadcast_message_id):
|
||||
'/services/<uuid:service_id>/broadcast/<uuid:broadcast_message_id>/libraries/<library_slug>',
|
||||
methods=['GET', 'POST'],
|
||||
)
|
||||
@user_has_permissions('send_messages', restrict_admin_usage=True)
|
||||
@user_has_permissions('send_messages', 'create_broadcasts', restrict_admin_usage=True)
|
||||
@service_has_permission('broadcast')
|
||||
def choose_broadcast_area(service_id, broadcast_message_id, library_slug):
|
||||
broadcast_message = BroadcastMessage.from_id(
|
||||
@@ -280,7 +280,7 @@ def _get_broadcast_sub_area_back_link(service_id, broadcast_message_id, library_
|
||||
'/services/<uuid:service_id>/broadcast/<uuid:broadcast_message_id>/libraries/<library_slug>/<area_slug>',
|
||||
methods=['GET', 'POST'],
|
||||
)
|
||||
@user_has_permissions('send_messages', restrict_admin_usage=True)
|
||||
@user_has_permissions('send_messages', 'create_broadcasts', restrict_admin_usage=True)
|
||||
@service_has_permission('broadcast')
|
||||
def choose_broadcast_sub_area(service_id, broadcast_message_id, library_slug, area_slug):
|
||||
broadcast_message = BroadcastMessage.from_id(
|
||||
@@ -332,7 +332,7 @@ def choose_broadcast_sub_area(service_id, broadcast_message_id, library_slug, ar
|
||||
|
||||
|
||||
@main.route('/services/<uuid:service_id>/broadcast/<uuid:broadcast_message_id>/remove/<area_slug>')
|
||||
@user_has_permissions('send_messages', restrict_admin_usage=True)
|
||||
@user_has_permissions('send_messages', 'create_broadcasts', restrict_admin_usage=True)
|
||||
@service_has_permission('broadcast')
|
||||
def remove_broadcast_area(service_id, broadcast_message_id, area_slug):
|
||||
BroadcastMessage.from_id(
|
||||
@@ -352,7 +352,7 @@ def remove_broadcast_area(service_id, broadcast_message_id, area_slug):
|
||||
'/services/<uuid:service_id>/broadcast/<uuid:broadcast_message_id>/preview',
|
||||
methods=['GET', 'POST'],
|
||||
)
|
||||
@user_has_permissions('send_messages', restrict_admin_usage=True)
|
||||
@user_has_permissions('send_messages', 'create_broadcasts', restrict_admin_usage=True)
|
||||
@service_has_permission('broadcast')
|
||||
def preview_broadcast_message(service_id, broadcast_message_id):
|
||||
broadcast_message = BroadcastMessage.from_id(
|
||||
@@ -426,7 +426,7 @@ def view_broadcast(service_id, broadcast_message_id):
|
||||
|
||||
|
||||
@main.route('/services/<uuid:service_id>/current-alerts/<uuid:broadcast_message_id>', methods=['POST'])
|
||||
@user_has_permissions('send_messages', restrict_admin_usage=True)
|
||||
@user_has_permissions('send_messages', 'approve_broadcasts', restrict_admin_usage=True)
|
||||
@service_has_permission('broadcast')
|
||||
def approve_broadcast_message(service_id, broadcast_message_id):
|
||||
|
||||
@@ -476,7 +476,7 @@ def approve_broadcast_message(service_id, broadcast_message_id):
|
||||
|
||||
|
||||
@main.route('/services/<uuid:service_id>/broadcast/<uuid:broadcast_message_id>/reject')
|
||||
@user_has_permissions('send_messages', restrict_admin_usage=True)
|
||||
@user_has_permissions('send_messages', 'create_broadcasts', 'approve_broadcasts', restrict_admin_usage=True)
|
||||
@service_has_permission('broadcast')
|
||||
def reject_broadcast_message(service_id, broadcast_message_id):
|
||||
|
||||
@@ -504,7 +504,7 @@ def reject_broadcast_message(service_id, broadcast_message_id):
|
||||
'/services/<uuid:service_id>/broadcast/<uuid:broadcast_message_id>/cancel',
|
||||
methods=['GET', 'POST'],
|
||||
)
|
||||
@user_has_permissions('send_messages', restrict_admin_usage=False)
|
||||
@user_has_permissions('send_messages', 'create_broadcasts', 'approve_broadcasts', restrict_admin_usage=False)
|
||||
@service_has_permission('broadcast')
|
||||
def cancel_broadcast_message(service_id, broadcast_message_id):
|
||||
broadcast_message = BroadcastMessage.from_id(
|
||||
|
||||
@@ -6,6 +6,8 @@ roles = {
|
||||
'manage_service': ['manage_users', 'manage_settings'],
|
||||
'manage_api_keys': ['manage_api_keys'],
|
||||
'view_activity': ['view_activity'],
|
||||
'create_broadcasts': ['manage_templates', 'create_broadcasts', 'reject_broadcasts', 'cancel_broadcasts'],
|
||||
'approve_broadcasts': ['approve_broadcasts', 'reject_broadcasts', 'cancel_broadcasts'],
|
||||
}
|
||||
|
||||
# same dict as above, but flipped round
|
||||
|
||||
Reference in New Issue
Block a user