mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-09-02 17:48:50 -04:00
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:
@@ -17,7 +17,7 @@
|
|||||||
'current_broadcasts'
|
'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">
|
<div class="js-stick-at-bottom-when-scrolling">
|
||||||
{{ govukButton({
|
{{ govukButton({
|
||||||
"element": "a",
|
"element": "a",
|
||||||
|
|||||||
@@ -13,7 +13,7 @@
|
|||||||
|
|
||||||
{% include('views/broadcast/partials/dashboard-table.html') %}
|
{% 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">
|
<div class="js-stick-at-bottom-when-scrolling">
|
||||||
{{ govukButton({
|
{{ govukButton({
|
||||||
"element": "a",
|
"element": "a",
|
||||||
|
|||||||
@@ -13,7 +13,9 @@ from tests.conftest import (
|
|||||||
SERVICE_ONE_ID,
|
SERVICE_ONE_ID,
|
||||||
create_active_user_approve_broadcasts_permissions,
|
create_active_user_approve_broadcasts_permissions,
|
||||||
create_active_user_create_broadcasts_permissions,
|
create_active_user_create_broadcasts_permissions,
|
||||||
|
create_active_user_view_permissions,
|
||||||
create_active_user_with_permissions,
|
create_active_user_with_permissions,
|
||||||
|
create_platform_admin_user,
|
||||||
normalize_spaces,
|
normalize_spaces,
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -477,13 +479,19 @@ def test_empty_broadcast_dashboard(
|
|||||||
|
|
||||||
|
|
||||||
@freeze_time('2020-02-20 02:20')
|
@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(
|
def test_broadcast_dashboard(
|
||||||
client_request,
|
client_request,
|
||||||
service_one,
|
service_one,
|
||||||
mock_get_broadcast_messages,
|
mock_get_broadcast_messages,
|
||||||
mock_get_service_templates,
|
mock_get_service_templates,
|
||||||
|
user,
|
||||||
):
|
):
|
||||||
service_one['permissions'] += ['broadcast']
|
service_one['permissions'] += ['broadcast']
|
||||||
|
client_request.login(user)
|
||||||
page = client_request.get(
|
page = client_request.get(
|
||||||
'.broadcast_dashboard',
|
'.broadcast_dashboard',
|
||||||
service_id=SERVICE_ONE_ID,
|
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', (
|
@pytest.mark.parametrize('endpoint', (
|
||||||
'.broadcast_dashboard', '.broadcast_dashboard_previous', '.broadcast_dashboard_rejected',
|
'.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,
|
client_request,
|
||||||
service_one,
|
service_one,
|
||||||
active_user_view_permissions,
|
|
||||||
platform_admin_user_no_service_permissions,
|
|
||||||
mock_get_broadcast_messages,
|
mock_get_broadcast_messages,
|
||||||
endpoint,
|
endpoint,
|
||||||
user_is_platform_admin
|
user,
|
||||||
):
|
):
|
||||||
if user_is_platform_admin:
|
client_request.login(user)
|
||||||
client_request.login(platform_admin_user_no_service_permissions)
|
|
||||||
else:
|
|
||||||
client_request.login(active_user_view_permissions)
|
|
||||||
|
|
||||||
service_one['permissions'] += ['broadcast']
|
service_one['permissions'] += ['broadcast']
|
||||||
page = client_request.get(
|
page = client_request.get(
|
||||||
@@ -561,13 +568,19 @@ def test_broadcast_dashboard_json(
|
|||||||
|
|
||||||
|
|
||||||
@freeze_time('2020-02-20 02:20')
|
@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(
|
def test_previous_broadcasts_page(
|
||||||
client_request,
|
client_request,
|
||||||
service_one,
|
service_one,
|
||||||
mock_get_broadcast_messages,
|
mock_get_broadcast_messages,
|
||||||
mock_get_service_templates,
|
mock_get_service_templates,
|
||||||
|
user,
|
||||||
):
|
):
|
||||||
service_one['permissions'] += ['broadcast']
|
service_one['permissions'] += ['broadcast']
|
||||||
|
client_request.login(user)
|
||||||
page = client_request.get(
|
page = client_request.get(
|
||||||
'.broadcast_dashboard_previous',
|
'.broadcast_dashboard_previous',
|
||||||
service_id=SERVICE_ONE_ID,
|
service_id=SERVICE_ONE_ID,
|
||||||
@@ -596,13 +609,19 @@ def test_previous_broadcasts_page(
|
|||||||
|
|
||||||
|
|
||||||
@freeze_time('2020-02-20 02:20')
|
@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(
|
def test_rejected_broadcasts_page(
|
||||||
client_request,
|
client_request,
|
||||||
service_one,
|
service_one,
|
||||||
mock_get_broadcast_messages,
|
mock_get_broadcast_messages,
|
||||||
mock_get_service_templates,
|
mock_get_service_templates,
|
||||||
|
user,
|
||||||
):
|
):
|
||||||
service_one['permissions'] += ['broadcast']
|
service_one['permissions'] += ['broadcast']
|
||||||
|
client_request.login(user)
|
||||||
page = client_request.get(
|
page = client_request.get(
|
||||||
'.broadcast_dashboard_rejected',
|
'.broadcast_dashboard_rejected',
|
||||||
service_id=SERVICE_ONE_ID,
|
service_id=SERVICE_ONE_ID,
|
||||||
|
|||||||
Reference in New Issue
Block a user