diff --git a/app/templates/main_nav.html b/app/templates/main_nav.html
index 5f670c24d..f7aa3aed9 100644
--- a/app/templates/main_nav.html
+++ b/app/templates/main_nav.html
@@ -7,13 +7,13 @@
Send text messages
Send emails
- {% elif current_user.has_permissions(['manage_templates','manage_api_keys'], or_=True) %}
+ {% elif current_user.has_permissions(['manage_templates','manage_api_keys'], admin_override=True, or_=True) %}
{% endif %}
- {% if current_user.has_permissions(['manage_users', 'manage_settings']) %}
+ {% if current_user.has_permissions(['manage_users', 'manage_settings'], admin_override=True) %}
- Manage team
- Manage settings
diff --git a/tests/app/main/test_permissions.py b/tests/app/main/test_permissions.py
index 6314e6999..30a00e336 100644
--- a/tests/app/main/test_permissions.py
+++ b/tests/app/main/test_permissions.py
@@ -103,7 +103,8 @@ def test_platform_admin_user_can_not_access_page(app_,
platform_admin_user,
[],
'',
- will_succeed=False)
+ will_succeed=False,
+ admin_override=False)
def _user_with_permissions():
diff --git a/tests/app/main/views/test_all_services.py b/tests/app/main/views/test_all_services.py
index 0706d73e1..28756451d 100644
--- a/tests/app/main/views/test_all_services.py
+++ b/tests/app/main/views/test_all_services.py
@@ -1,6 +1,8 @@
from bs4 import BeautifulSoup
from flask import url_for
+import app
+
def test_all_services_should_render_all_services_template(app_,
platform_admin_user,
@@ -14,13 +16,7 @@ def test_all_services_should_render_all_services_template(app_,
assert response.status_code == 200
page = BeautifulSoup(response.data.decode('utf-8'), 'html.parser')
assert page.h1.string.strip() == 'All services'
-
-
-def _login_user(client, mocker, platform_admin_user, service_one):
- mocker.patch('app.user_api_client.get_user_by_email', return_value=platform_admin_user)
- mocker.patch('app.service_api_client.get_service', return_value={'data': service_one})
- mocker.patch('app.user_api_client.get_user', return_value=platform_admin_user)
- client.login(platform_admin_user)
+ assert app.service_api_client.get_services.call_count == 1
def test_all_service_returns_403_when_not_a_platform_admin(app_,
@@ -32,3 +28,8 @@ def test_all_service_returns_403_when_not_a_platform_admin(app_,
_login_user(client, mocker, active_user_with_permissions, service_one)
response = client.get(url_for('main.show_all_services'))
assert response.status_code == 403
+
+
+def _login_user(client, mocker, platform_admin_user, service_one):
+ mocker.patch('app.user_api_client.get_user', return_value=platform_admin_user)
+ client.login(platform_admin_user)
diff --git a/tests/app/main/views/test_dashboard.py b/tests/app/main/views/test_dashboard.py
index 50c4f63d3..7345a19bd 100644
--- a/tests/app/main/views/test_dashboard.py
+++ b/tests/app/main/views/test_dashboard.py
@@ -62,6 +62,7 @@ def test_menu_send_messages(mocker, app_, api_user_active, service_one, mock_get
assert url_for('main.api_keys', service_id=service_one['id']) not in page
assert url_for('main.documentation', service_id=service_one['id']) not in page
+ assert url_for('main.show_all_services') not in page
def test_menu_manage_service(mocker, app_, api_user_active, service_one, mock_get_service_templates, mock_get_jobs):
@@ -86,6 +87,7 @@ def test_menu_manage_service(mocker, app_, api_user_active, service_one, mock_ge
assert url_for('main.service_settings', service_id=service_one['id']) in page
assert url_for('main.api_keys', service_id=service_one['id']) not in page
+ assert url_for('main.show_all_services') not in page
def test_menu_manage_api_keys(mocker, app_, api_user_active, service_one, mock_get_service_templates, mock_get_jobs):
@@ -108,6 +110,7 @@ def test_menu_manage_api_keys(mocker, app_, api_user_active, service_one, mock_g
assert url_for('main.manage_users', service_id=service_one['id']) not in page
assert url_for('main.service_settings', service_id=service_one['id']) not in page
+ assert url_for('main.show_all_services') not in page
assert url_for('main.api_keys', service_id=service_one['id']) in page
@@ -123,3 +126,10 @@ def test_menu_all_services_for_platform_admin_user(mocker, app_, platform_admin_
[])
page = resp.get_data(as_text=True)
assert url_for('main.show_all_services') in page
+ assert url_for('main.choose_template', service_id=service_one['id'], template_type='sms') in page
+ assert url_for('main.choose_template', service_id=service_one['id'], template_type='email') in page
+ assert url_for('main.manage_users', service_id=service_one['id']) in page
+ assert url_for('main.service_settings', service_id=service_one['id']) in page
+ assert url_for('main.view_notifications', service_id=service_one['id']) in page
+ assert url_for('main.view_jobs', service_id=service_one['id']) in page
+ assert url_for('main.api_keys', service_id=service_one['id']) not in page