mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-07-18 21:44:11 -04:00
Merge pull request #3280 from alphagov/swap-nav-order-org-users
Swap order of usage and team members in navigation when organisation users are looking at a service
This commit is contained in:
@@ -3,10 +3,10 @@
|
||||
{% else %}
|
||||
<nav class="navigation">
|
||||
<ul>
|
||||
{% if current_user.has_permissions('view_activity') %}
|
||||
<li><a href="{{ url_for('.service_dashboard', service_id=current_service.id) }}" {{ main_navigation.is_selected('dashboard') }}>Dashboard</a></li>
|
||||
{% endif %}
|
||||
{% if current_user.has_permissions() %}
|
||||
{% if current_user.has_permissions('view_activity') %}
|
||||
<li><a href="{{ url_for('.service_dashboard', service_id=current_service.id) }}" {{ main_navigation.is_selected('dashboard') }}>Dashboard</a></li>
|
||||
{% endif %}
|
||||
<li><a href="{{ url_for('.choose_template', service_id=current_service.id) }}" {{ main_navigation.is_selected('templates') }}>Templates</a></li>
|
||||
{% if current_user.has_permissions('view_activity') %}
|
||||
{% if current_service.can_upload_letters %}
|
||||
@@ -18,16 +18,19 @@
|
||||
<li><a href="{{ url_for('main.uploads', service_id=current_service.id) }}" {{ casework_navigation.is_selected('uploads') }}>Uploads</a></li>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
<li><a href="{{ url_for('.manage_users', service_id=current_service.id) }}" {{ main_navigation.is_selected('team-members') }}>Team members</a></li>
|
||||
{% if current_user.has_permissions('manage_service', allow_org_user=True) %}
|
||||
{% if current_user.has_permissions('manage_service', allow_org_user=True) %}
|
||||
<li><a href="{{ url_for('.usage', service_id=current_service.id) }}" {{ main_navigation.is_selected('usage') }}>Usage</a></li>
|
||||
{% endif %}
|
||||
{% if current_user.has_permissions('manage_api_keys', 'manage_service') %}
|
||||
<li><a href="{{ url_for('.service_settings', service_id=current_service.id) }}" {{ main_navigation.is_selected('settings') }}>Settings</a></li>
|
||||
{% endif %}
|
||||
{% if current_user.has_permissions('manage_api_keys') %}
|
||||
<li><a href="{{ url_for('.api_integration', service_id=current_service.id) }}" {{ main_navigation.is_selected('api-integration') }}>API integration</a></li>
|
||||
{% endif %}
|
||||
{% elif current_user.has_permissions(allow_org_user=True) %}
|
||||
<li><a href="{{ url_for('.usage', service_id=current_service.id) }}" {{ main_navigation.is_selected('usage') }}>Usage</a></li>
|
||||
{% endif %}
|
||||
{% if current_user.has_permissions('manage_api_keys', 'manage_service') %}
|
||||
<li><a href="{{ url_for('.service_settings', service_id=current_service.id) }}" {{ main_navigation.is_selected('settings') }}>Settings</a></li>
|
||||
{% endif %}
|
||||
{% if current_user.has_permissions('manage_api_keys') %}
|
||||
<li><a href="{{ url_for('.api_integration', service_id=current_service.id) }}" {{ main_navigation.is_selected('api-integration') }}>API integration</a></li>
|
||||
<li><a href="{{ url_for('.manage_users', service_id=current_service.id) }}" {{ main_navigation.is_selected('team-members') }}>Team members</a></li>
|
||||
{% endif %}
|
||||
</ul>
|
||||
</nav>
|
||||
|
||||
@@ -373,11 +373,76 @@ def test_service_navigation_for_org_user(
|
||||
assert [
|
||||
item.text.strip() for item in page.select('nav.navigation a')
|
||||
] == [
|
||||
'Team members',
|
||||
'Usage',
|
||||
'Team members',
|
||||
]
|
||||
|
||||
|
||||
@pytest.mark.parametrize('user_organisations, expected_menu_items, expected_status', [
|
||||
(
|
||||
[],
|
||||
(
|
||||
'Templates',
|
||||
'Sent messages',
|
||||
'Team members',
|
||||
),
|
||||
403,
|
||||
),
|
||||
(
|
||||
[ORGANISATION_ID],
|
||||
(
|
||||
'Templates',
|
||||
'Sent messages',
|
||||
'Team members',
|
||||
'Usage',
|
||||
),
|
||||
200,
|
||||
),
|
||||
])
|
||||
def test_service_user_without_manage_service_permission_can_see_usage_page_when_org_user(
|
||||
client_request,
|
||||
mocker,
|
||||
active_caseworking_user,
|
||||
mock_has_no_jobs,
|
||||
mock_get_usage,
|
||||
mock_get_billable_units,
|
||||
mock_get_free_sms_fragment_limit,
|
||||
mock_get_service,
|
||||
mock_get_invites_for_service,
|
||||
mock_get_users_by_service,
|
||||
mock_get_service_organisation,
|
||||
mock_get_service_templates,
|
||||
mock_get_template_folders,
|
||||
user_organisations,
|
||||
expected_status,
|
||||
expected_menu_items,
|
||||
):
|
||||
active_caseworking_user['services'] = [SERVICE_ONE_ID]
|
||||
active_caseworking_user['organisations'] = user_organisations
|
||||
service = service_json(
|
||||
id_=SERVICE_ONE_ID,
|
||||
organisation_id=ORGANISATION_ID,
|
||||
)
|
||||
mocker.patch(
|
||||
'app.service_api_client.get_service',
|
||||
return_value={'data': service}
|
||||
)
|
||||
client_request.login(active_caseworking_user, service=service)
|
||||
page = client_request.get(
|
||||
'main.choose_template',
|
||||
service_id=SERVICE_ONE_ID,
|
||||
)
|
||||
assert tuple(
|
||||
item.text.strip() for item in page.select('nav.navigation a')
|
||||
) == expected_menu_items
|
||||
|
||||
client_request.get(
|
||||
'main.usage',
|
||||
service_id=SERVICE_ONE_ID,
|
||||
_expected_status=expected_status,
|
||||
)
|
||||
|
||||
|
||||
def get_name_of_decorator_from_ast_node(node):
|
||||
if isinstance(node, ast.Name):
|
||||
return str(node.id)
|
||||
|
||||
Reference in New Issue
Block a user