diff --git a/app/templates/main_nav.html b/app/templates/main_nav.html
index 092825c73..5969d20c9 100644
--- a/app/templates/main_nav.html
+++ b/app/templates/main_nav.html
@@ -25,8 +25,12 @@
{% if current_user.has_permissions('manage_api_keys', 'manage_service') %}
Settings
{% endif %}
- {% if current_user.has_permissions('manage_api_keys') and not current_service.has_permission('broadcast') %}
- API integration
+ {% if current_user.has_permissions('manage_api_keys') %}
+ {% if current_service.has_permission('broadcast') %}
+ API integration
+ {% else %}
+ API integration
+ {% endif %}
{% endif %}
{% elif current_user.has_permissions(allow_org_user=True) %}
Usage
diff --git a/tests/app/test_navigation.py b/tests/app/test_navigation.py
index 8477a9581..81a6ea634 100644
--- a/tests/app/test_navigation.py
+++ b/tests/app/test_navigation.py
@@ -521,13 +521,47 @@ def test_navigation_urls(
def test_navigation_for_services_with_broadcast_permission(
+ mocker,
client_request,
service_one,
mock_get_service_templates,
mock_get_template_folders,
mock_get_api_keys,
+ active_user_create_broadcasts_permission,
):
service_one['permissions'] += ['broadcast']
+ mocker.patch(
+ 'app.user_api_client.get_user',
+ return_value=active_user_create_broadcasts_permission
+ )
+
+ page = client_request.get('main.choose_template', service_id=SERVICE_ONE_ID)
+ assert [
+ a['href'] for a in page.select('.navigation a')
+ ] == [
+ '/services/{}/current-alerts'.format(SERVICE_ONE_ID),
+ '/services/{}/past-alerts'.format(SERVICE_ONE_ID),
+ '/services/{}/rejected-alerts'.format(SERVICE_ONE_ID),
+ '/services/{}/templates'.format(SERVICE_ONE_ID),
+ '/services/{}/users'.format(SERVICE_ONE_ID),
+ ]
+
+
+def test_navigation_for_services_with_broadcast_permission_platform_admin(
+ mocker,
+ client_request,
+ service_one,
+ mock_get_service_templates,
+ mock_get_template_folders,
+ mock_get_api_keys,
+ platform_admin_user,
+):
+ service_one['permissions'] += ['broadcast']
+ mocker.patch(
+ 'app.user_api_client.get_user',
+ return_value=platform_admin_user,
+ )
+
page = client_request.get('main.choose_template', service_id=SERVICE_ONE_ID)
assert [
a['href'] for a in page.select('.navigation a')
@@ -538,6 +572,7 @@ def test_navigation_for_services_with_broadcast_permission(
'/services/{}/templates'.format(SERVICE_ONE_ID),
'/services/{}/users'.format(SERVICE_ONE_ID),
'/services/{}/service-settings'.format(SERVICE_ONE_ID),
+ '/services/{}/api/keys'.format(SERVICE_ONE_ID),
]
diff --git a/tests/conftest.py b/tests/conftest.py
index 69bb391a5..84bebc261 100644
--- a/tests/conftest.py
+++ b/tests/conftest.py
@@ -3604,6 +3604,7 @@ def create_active_user_create_broadcasts_permissions(with_unique_id=False):
'create_broadcasts',
'reject_broadcasts',
'cancel_broadcasts',
+ 'view_activity', # added automatically by API
]},
auth_type='webauthn_auth',
)
@@ -3617,6 +3618,7 @@ def create_active_user_approve_broadcasts_permissions(with_unique_id=False):
'approve_broadcasts',
'reject_broadcasts',
'cancel_broadcasts',
+ 'view_activity', # added automatically by API
]},
auth_type='webauthn_auth',
)