Projet

Général

Profil

0001-manager-remove-username-column-of-role-members-table.patch

Frédéric Péters, 25 juillet 2020 15:35

Télécharger (2,54 ko)

Voir les différences:

Subject: [PATCH] manager: remove username column of role members table if
 configured so (#45423)

 src/authentic2/manager/role_views.py | 16 ++++++++++++++++
 tests/test_manager.py                | 14 ++++++++++++++
 2 files changed, 30 insertions(+)
src/authentic2/manager/role_views.py
33 33
from authentic2 import hooks, data_transfer
34 34

  
35 35
from . import tables, views, resources, forms, app_settings
36
from .utils import has_show_username
36 37

  
37 38

  
38 39
class RolesMixin(object):
......
202 203
        ctx['from_ldap'] = self._can_manage_members and not self.can_manage_members
203 204
        return ctx
204 205

  
206
    def is_ou_specified(self):
207
        return self.search_form.is_valid() \
208
            and self.search_form.cleaned_data.get('ou')
209

  
210
    def get_table(self, **kwargs):
211
        show_username = has_show_username()
212
        if not show_username and self.is_ou_specified():
213
            show_username = self.is_ou_specified().show_username
214
        if not show_username:
215
            exclude = kwargs.setdefault('exclude', [])
216
            if 'username' not in exclude:
217
                exclude.append('username')
218
        return super().get_table(**kwargs)
219

  
220

  
205 221
members = RoleMembersView.as_view()
206 222

  
207 223

  
tests/test_manager.py
813 813
    assert resp.json['content']
814 814

  
815 815

  
816
def test_manager_role_username_column(app, admin, simple_role):
817
    login(app, admin, '/manage/')
818

  
819
    resp = app.get('/manage/roles/%s/' % simple_role.id)
820
    assert resp.html.find('th', {'class': 'asc orderable username'})
821

  
822
    ou = get_default_ou()
823
    ou.show_username = False
824
    ou.save()
825

  
826
    resp = app.get('/manage/roles/%s/' % simple_role.id)
827
    assert not resp.html.find('th', {'class': 'asc orderable username'})
828

  
829

  
816 830
def test_manager_role_admin_permissions(app, simple_user, admin, simple_role):
817 831
    admin_role = simple_role.get_admin_role()
818 832
    simple_user.roles.add(admin_role)
819
-