Projet

Général

Profil

0001-manager-remove-username-field-from-view-edit-pages-i.patch

Frédéric Péters, 02 août 2020 13:53

Télécharger (3,44 ko)

Voir les différences:

Subject: [PATCH] manager: remove username field from view/edit pages if
 configured so (#45674)

 src/authentic2/manager/user_views.py |  4 ++++
 tests/test_user_manager.py           | 36 ++++++++++++++++++++++++++++
 2 files changed, 40 insertions(+)
src/authentic2/manager/user_views.py
309 309

  
310 310
    def get_fields(self):
311 311
        fields = list(self.fields)
312
        if not self.object.username and self.object.ou and not self.object.ou.show_username:
313
            fields.remove('username')
312 314
        for attribute in Attribute.objects.all():
313 315
            fields.append(attribute.name)
314 316
        if self.request.user.is_superuser and \
......
365 367

  
366 368
    def get_fields(self):
367 369
        fields = list(self.fields)
370
        if not self.object.username and self.object.ou and not self.object.ou.show_username:
371
            fields.remove('username')
368 372
        if not self.object.ou or not self.object.ou.validate_emails:
369 373
            fields.append('email')
370 374
        for attribute in Attribute.objects.all():
tests/test_user_manager.py
734 734
    simple_user.save()
735 735
    resp = app.get('/manage/users/')
736 736
    assert resp.html.find('span', {'class': 'verified'}).text == simple_user.email
737

  
738

  
739
def test_manager_user_username_field(app, superuser, simple_user):
740
    login(app, superuser, '/manage/')
741

  
742
    resp = app.get(reverse('a2-manager-user-detail', kwargs={'pk': simple_user.id}))
743
    assert resp.html.find('input', {'name': 'username'})
744
    resp = app.get(reverse('a2-manager-user-edit', kwargs={'pk': simple_user.id}))
745
    assert resp.html.find('input', {'name': 'username'})
746

  
747
    # remove username from user
748
    simple_user.username = ''
749
    simple_user.save()
750

  
751
    resp = app.get(reverse('a2-manager-user-detail', kwargs={'pk': simple_user.id}))
752
    assert resp.html.find('input', {'name': 'username'})
753
    resp = app.get(reverse('a2-manager-user-edit', kwargs={'pk': simple_user.id}))
754
    assert resp.html.find('input', {'name': 'username'})
755

  
756
    # disable usernames on organizational unit
757
    simple_user.ou.show_username = False
758
    simple_user.ou.save()
759

  
760
    resp = app.get(reverse('a2-manager-user-detail', kwargs={'pk': simple_user.id}))
761
    assert not resp.html.find('input', {'name': 'username'})
762
    resp = app.get(reverse('a2-manager-user-edit', kwargs={'pk': simple_user.id}))
763
    assert not resp.html.find('input', {'name': 'username'})
764

  
765
    # but it's still displayed if it was set
766
    simple_user.username = 'user'
767
    simple_user.save()
768

  
769
    resp = app.get(reverse('a2-manager-user-detail', kwargs={'pk': simple_user.id}))
770
    assert resp.html.find('input', {'name': 'username'})
771
    resp = app.get(reverse('a2-manager-user-edit', kwargs={'pk': simple_user.id}))
772
    assert resp.html.find('input', {'name': 'username'})
737
-