mirror of
https://github.com/GSA/notifications-api.git
synced 2026-08-18 13:38:53 -04:00
Raise 403 when broadcasting on a suspended service
This mirrors the approach we take for jobs [1].
[1]: 3d71815956/app/job/rest.py (L146)
This commit is contained in:
@@ -176,6 +176,9 @@ def update_broadcast_message_status(service_id, broadcast_message_id):
|
|||||||
validate(data, update_broadcast_message_status_schema)
|
validate(data, update_broadcast_message_status_schema)
|
||||||
broadcast_message = dao_get_broadcast_message_by_id_and_service_id(broadcast_message_id, service_id)
|
broadcast_message = dao_get_broadcast_message_by_id_and_service_id(broadcast_message_id, service_id)
|
||||||
|
|
||||||
|
if not broadcast_message.service.active:
|
||||||
|
raise InvalidRequest("Updating broadcast message is not allowed: service is inactive ", 403)
|
||||||
|
|
||||||
new_status = data['status']
|
new_status = data['status']
|
||||||
updating_user = get_user_by_id(data['created_by'])
|
updating_user = get_user_by_id(data['created_by'])
|
||||||
|
|
||||||
|
|||||||
@@ -604,6 +604,22 @@ def test_update_broadcast_message_status_updates_details_but_does_not_queue_task
|
|||||||
assert len(mock_task.mock_calls) == 0
|
assert len(mock_task.mock_calls) == 0
|
||||||
|
|
||||||
|
|
||||||
|
def test_update_broadcast_message_status_aborts_if_service_is_suspended(
|
||||||
|
admin_request,
|
||||||
|
sample_broadcast_service,
|
||||||
|
):
|
||||||
|
bm = create_broadcast_message(service=sample_broadcast_service, content='test')
|
||||||
|
sample_broadcast_service.active = False
|
||||||
|
|
||||||
|
admin_request.post(
|
||||||
|
'broadcast_message.update_broadcast_message_status',
|
||||||
|
_data={'status': BroadcastStatusType.BROADCASTING, 'created_by': str(uuid.uuid4())},
|
||||||
|
service_id=sample_broadcast_service.id,
|
||||||
|
broadcast_message_id=bm.id,
|
||||||
|
_expected_status=403
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
def test_update_broadcast_message_status_creates_event_with_correct_content_if_broadcast_has_no_template(
|
def test_update_broadcast_message_status_creates_event_with_correct_content_if_broadcast_has_no_template(
|
||||||
admin_request,
|
admin_request,
|
||||||
sample_broadcast_service,
|
sample_broadcast_service,
|
||||||
|
|||||||
Reference in New Issue
Block a user