add count of folders visible per user to the team members page

Shows a count of how many folders that user can see - this doesn't do
anything smart with parent folder stuff, it's just "how many checkboxes
are ticked on the edit page".

* doesn't show if service has no folders
* doesn't show if service hasn't got folder permissions enabled
This commit is contained in:
Leo Hemsted
2019-04-04 17:55:37 +01:00
parent 16d1526c46
commit 249b80762a
3 changed files with 98 additions and 0 deletions

View File

@@ -878,6 +878,73 @@ def test_no_permission_manage_users_page(
assert "Team members" not in resp_text
@pytest.mark.parametrize('folders_user_can_see, expected_message', [
(3, 'Can see all folders'),
(2, 'Can see 2 folders'),
(1, 'Can see 1 folder'),
(0, 'Cannot see any folders'),
])
def test_manage_user_page_shows_how_many_folders_user_can_view(
client_request,
service_one,
mock_get_template_folders,
mock_get_users_by_service,
mock_get_invites_for_service,
api_user_active,
folders_user_can_see,
expected_message
):
service_one['permissions'] = ['edit_folder_permissions']
mock_get_template_folders.return_value = [
{'id': 'folder-id-1', 'name': 'f1', 'parent_id': None, 'users_with_permission': []},
{'id': 'folder-id-2', 'name': 'f2', 'parent_id': None, 'users_with_permission': []},
{'id': 'folder-id-3', 'name': 'f3', 'parent_id': None, 'users_with_permission': []},
]
for i in range(folders_user_can_see):
mock_get_template_folders.return_value[i]['users_with_permission'].append(api_user_active.id)
page = client_request.get('main.manage_users', service_id=service_one['id'])
user_div = page.select_one("h3[title='notify@digital.cabinet-office.gov.uk']").parent
assert user_div.select_one('.tick-cross-list-hint:last-child').text.strip() == expected_message
def test_manage_user_page_doesnt_show_folder_hint_if_service_has_no_folders(
client_request,
service_one,
mock_get_template_folders,
mock_get_users_by_service,
mock_get_invites_for_service,
api_user_active,
):
service_one['permissions'] = ['edit_folder_permissions']
mock_get_template_folders.return_value = []
page = client_request.get('main.manage_users', service_id=service_one['id'])
user_div = page.select_one("h3[title='notify@digital.cabinet-office.gov.uk']").parent
assert user_div.find('.tick-cross-list-hint:last-child') is None
def test_manage_user_page_doesnt_show_folder_hint_if_service_cant_edit_folder_permissions(
client_request,
service_one,
mock_get_template_folders,
mock_get_users_by_service,
mock_get_invites_for_service,
api_user_active
):
service_one['permissions'] = []
mock_get_template_folders.return_value = [
{'id': 'folder-id-1', 'name': 'f1', 'parent_id': None, 'users_with_permission': [api_user_active.id]},
]
page = client_request.get('main.manage_users', service_id=service_one['id'])
user_div = page.select_one("h3[title='notify@digital.cabinet-office.gov.uk']").parent
assert user_div.find('.tick-cross-list-hint:last-child') is None
def test_remove_user_from_service(
client_request,
active_user_with_permissions,