Use new permissions for the button on the broadcast dashboard

The broadcast dashboards contain a button to create a new broadcast.
This adds the new `create_broadcasts` permission as one of the
permissions needed to see the button.
This commit is contained in:
Katie Smith
2021-06-28 08:33:27 +01:00
parent a84705f834
commit b6905c435b
3 changed files with 30 additions and 11 deletions

View File

@@ -17,7 +17,7 @@
'current_broadcasts'
) }}
{% if current_user.has_permissions('send_messages', restrict_admin_usage=True) %}
{% if current_user.has_permissions('send_messages', 'create_broadcasts', restrict_admin_usage=True) %}
<div class="js-stick-at-bottom-when-scrolling">
{{ govukButton({
"element": "a",

View File

@@ -13,7 +13,7 @@
{% include('views/broadcast/partials/dashboard-table.html') %}
{% if current_user.has_permissions('send_messages', restrict_admin_usage=True) %}
{% if current_user.has_permissions('send_messages', 'create_broadcasts', restrict_admin_usage=True) %}
<div class="js-stick-at-bottom-when-scrolling">
{{ govukButton({
"element": "a",

View File

@@ -13,7 +13,9 @@ from tests.conftest import (
SERVICE_ONE_ID,
create_active_user_approve_broadcasts_permissions,
create_active_user_create_broadcasts_permissions,
create_active_user_view_permissions,
create_active_user_with_permissions,
create_platform_admin_user,
normalize_spaces,
)
@@ -477,13 +479,19 @@ def test_empty_broadcast_dashboard(
@freeze_time('2020-02-20 02:20')
@pytest.mark.parametrize('user', [
create_active_user_with_permissions(),
create_active_user_create_broadcasts_permissions(),
])
def test_broadcast_dashboard(
client_request,
service_one,
mock_get_broadcast_messages,
mock_get_service_templates,
user,
):
service_one['permissions'] += ['broadcast']
client_request.login(user)
page = client_request.get(
'.broadcast_dashboard',
service_id=SERVICE_ONE_ID,
@@ -511,23 +519,22 @@ def test_broadcast_dashboard(
)
@pytest.mark.parametrize("user_is_platform_admin", [True, False])
@pytest.mark.parametrize('user', [
create_platform_admin_user(),
create_active_user_view_permissions(),
create_active_user_approve_broadcasts_permissions(),
])
@pytest.mark.parametrize('endpoint', (
'.broadcast_dashboard', '.broadcast_dashboard_previous', '.broadcast_dashboard_rejected',
))
def test_broadcast_dashboard_does_not_have_button_for_view_only_user(
def test_broadcast_dashboard_does_not_have_button_if_user_does_not_have_permission_to_create_broadcast(
client_request,
service_one,
active_user_view_permissions,
platform_admin_user_no_service_permissions,
mock_get_broadcast_messages,
endpoint,
user_is_platform_admin
user,
):
if user_is_platform_admin:
client_request.login(platform_admin_user_no_service_permissions)
else:
client_request.login(active_user_view_permissions)
client_request.login(user)
service_one['permissions'] += ['broadcast']
page = client_request.get(
@@ -561,13 +568,19 @@ def test_broadcast_dashboard_json(
@freeze_time('2020-02-20 02:20')
@pytest.mark.parametrize('user', [
create_active_user_with_permissions(),
create_active_user_create_broadcasts_permissions(),
])
def test_previous_broadcasts_page(
client_request,
service_one,
mock_get_broadcast_messages,
mock_get_service_templates,
user,
):
service_one['permissions'] += ['broadcast']
client_request.login(user)
page = client_request.get(
'.broadcast_dashboard_previous',
service_id=SERVICE_ONE_ID,
@@ -596,13 +609,19 @@ def test_previous_broadcasts_page(
@freeze_time('2020-02-20 02:20')
@pytest.mark.parametrize('user', [
create_active_user_with_permissions(),
create_active_user_create_broadcasts_permissions(),
])
def test_rejected_broadcasts_page(
client_request,
service_one,
mock_get_broadcast_messages,
mock_get_service_templates,
user,
):
service_one['permissions'] += ['broadcast']
client_request.login(user)
page = client_request.get(
'.broadcast_dashboard_rejected',
service_id=SERVICE_ONE_ID,