From 4ab89c1188628f9d9ffb5685001775818adab33a Mon Sep 17 00:00:00 2001 From: Valentin Deniaud Date: Wed, 3 Nov 2021 12:45:24 +0100 Subject: [PATCH 4/4] manager: remove children table from role members page (#57955) --- src/authentic2/manager/role_views.py | 8 ----- .../authentic2/manager/role_members.html | 31 ++----------------- tests/test_ldap.py | 2 +- tests/test_role_manager.py | 30 ++++++++---------- 4 files changed, 17 insertions(+), 54 deletions(-) diff --git a/src/authentic2/manager/role_views.py b/src/authentic2/manager/role_views.py index 5c790061..1db6f976 100644 --- a/src/authentic2/manager/role_views.py +++ b/src/authentic2/manager/role_views.py @@ -267,14 +267,6 @@ class RoleMembersView(views.HideOUColumnMixin, RoleViewMixin, views.BaseSubTable def get_context_data(self, **kwargs): ctx = super().get_context_data(**kwargs) - ctx['children'] = list( - views.filter_view( - self.request, - self.object.children(include_self=False, annotate=True).order_by( - F('ou').asc(nulls_first=True), 'name' - ), - )[:11] - ) ctx['parents'] = list( views.filter_view( self.request, diff --git a/src/authentic2/manager/templates/authentic2/manager/role_members.html b/src/authentic2/manager/templates/authentic2/manager/role_members.html index cfbbd711..e9618480 100644 --- a/src/authentic2/manager/templates/authentic2/manager/role_members.html +++ b/src/authentic2/manager/templates/authentic2/manager/role_members.html @@ -42,6 +42,9 @@
  • {% trans "Permissions" %}
  • {% endif %}
  • {% trans "Journal" %}
  • + {% if view.can_manage_members %} +
  • {% trans "Add a role as a member" %}
  • + {% endif %} {% endblock %} @@ -102,34 +105,6 @@ {% endif %} -
    -

    {% trans "Grants its permissions to roles:" %} - {% if view.can_manage_members %} - {% trans "Edit" %} - {% else %} - {% trans "Edit" %} - {% endif %} -

    -
    - {% if children %} - - {% else %} -

    {% trans "This role doesn't grant its permissions to any other role." %}

    - {% endif %} -
    -
    {% trans "Advanced parameters" %} diff --git a/tests/test_ldap.py b/tests/test_ldap.py index fa7dc46a..020f1697 100644 --- a/tests/test_ldap.py +++ b/tests/test_ldap.py @@ -686,9 +686,9 @@ def test_group_to_role_mapping_modify_disabled(slapd, settings, db, app, admin, response = app.get('/manage/roles/%s/' % (role.pk)) assert 'synchronised from LDAP' in response.text + assert 'Add a role as a member' not in response.text q = response.pyquery.remove_namespaces() assert not q('form.manager-m2m-add-form') - assert q('div.section h3 a.button.disabled') assert not q('table tbody td a.icon-remove-sign js-remove-object') diff --git a/tests/test_role_manager.py b/tests/test_role_manager.py index aee1336f..975a14f6 100644 --- a/tests/test_role_manager.py +++ b/tests/test_role_manager.py @@ -350,43 +350,36 @@ def test_manager_role_csv_import(app, admin, ou1, ou2): assert 'name,slug,ou' in resp.text -@pytest.mark.parametrize('relation', ['child', 'parent']) -def test_role_members_display_inheritance_info(app, superuser, settings, simple_role, relation): +def test_role_members_display_role_parents(app, superuser, settings, simple_role): url = reverse('a2-manager-role-members', kwargs={'pk': simple_role.pk}) resp = login(app, superuser, url) - assert "This role doesn't grant its permissions to any other role." in resp.text assert "This role doesn't contain permissions of any other role." in resp.text for i in range(10): role = Role.objects.create(name=f'Role {i}', ou=get_default_ou()) - getattr(simple_role, 'add_%s' % relation)(role) + simple_role.add_parent(role) resp = app.get(url) - if relation == 'child': - assert "This role doesn't grant its permissions to any other role." not in resp.text - assert "This role doesn't contain permissions of any other role." in resp.text - elif relation == 'parent': - assert "This role doesn't grant its permissions to any other role." in resp.text - assert "This role doesn't contain permissions of any other role." not in resp.text - - for i, el in enumerate(resp.pyquery.find('a.role-inheritance-%s' % relation)): + assert "This role doesn't contain permissions of any other role." not in resp.text + + for i, el in enumerate(resp.pyquery.find('a.role-inheritance-parent')): assert el.text == f'Role {i}' assert '(view all roles)' not in resp.text role = Role.objects.create(name='Role a', ou=get_default_ou()) - getattr(simple_role, 'add_%s' % relation)(role) + simple_role.add_parent(role) resp = app.get(url) - assert not resp.pyquery('a.role-inheritance-%s:contains("Role a")' % relation) + assert 'Role a' not in resp.text assert '(view all roles)' in resp.text - resp = resp.click('(view all roles)', href=relation) + resp = resp.click('(view all roles)') assert 'Role a' in resp.text # display OU if there are more than one ou1 = OU.objects.create(name='ou1') resp = app.get(url) - for i, el in enumerate(resp.pyquery.find('a.role-inheritance-%s' % relation)): + for i, el in enumerate(resp.pyquery.find('a.role-inheritance-parent')): assert el.text == f'Default organizational unit - Role {i}' # sort by OU, then name @@ -394,7 +387,7 @@ def test_role_members_display_inheritance_info(app, superuser, settings, simple_ Role.objects.filter(name__in=['Role 5', 'Role 6']).update(ou=None) resp = app.get(url) - assert [el.text for el in resp.pyquery.find('a.role-inheritance-%s' % relation)] == [ + assert [el.text for el in resp.pyquery.find('a.role-inheritance-parent')] == [ 'Role 5', 'Role 6', 'Default organizational unit - Role 0', @@ -460,3 +453,6 @@ def test_role_members_user_role_mixed_table(app, superuser, settings, simple_rol rows = [text_content(el) for el in resp.pyquery('tr td.link')] assert rows == ['user1', 'Jôhn Dôe'] + + resp = resp.click('Add a role as a member') + assert 'Role a' in resp.text -- 2.30.2