manager: remove username field from view/edit pages if configured so (#45674)
This commit is contained in:
parent
079102d851
commit
7d630f53be
|
@ -309,6 +309,8 @@ class UserDetailView(OtherActionsMixin, BaseDetailView):
|
|||
|
||||
def get_fields(self):
|
||||
fields = list(self.fields)
|
||||
if not self.object.username and self.object.ou and not self.object.ou.show_username:
|
||||
fields.remove('username')
|
||||
for attribute in Attribute.objects.all():
|
||||
fields.append(attribute.name)
|
||||
if self.request.user.is_superuser and \
|
||||
|
@ -365,6 +367,8 @@ class UserEditView(OtherActionsMixin, ActionMixin, BaseEditView):
|
|||
|
||||
def get_fields(self):
|
||||
fields = list(self.fields)
|
||||
if not self.object.username and self.object.ou and not self.object.ou.show_username:
|
||||
fields.remove('username')
|
||||
if not self.object.ou or not self.object.ou.validate_emails:
|
||||
fields.append('email')
|
||||
for attribute in Attribute.objects.all():
|
||||
|
|
|
@ -746,3 +746,39 @@ def test_manager_user_link_column_is_active(app, simple_user, superuser_or_admin
|
|||
simple_user.save()
|
||||
resp = app.get('/manage/users/')
|
||||
assert resp.html.find('span', {'class': 'disabled'}).text == 'Jôhn Dôe (disabled)'
|
||||
|
||||
|
||||
def test_manager_user_username_field(app, superuser, simple_user):
|
||||
login(app, superuser, '/manage/')
|
||||
|
||||
resp = app.get(reverse('a2-manager-user-detail', kwargs={'pk': simple_user.id}))
|
||||
assert resp.html.find('input', {'name': 'username'})
|
||||
resp = app.get(reverse('a2-manager-user-edit', kwargs={'pk': simple_user.id}))
|
||||
assert resp.html.find('input', {'name': 'username'})
|
||||
|
||||
# remove username from user
|
||||
simple_user.username = ''
|
||||
simple_user.save()
|
||||
|
||||
resp = app.get(reverse('a2-manager-user-detail', kwargs={'pk': simple_user.id}))
|
||||
assert resp.html.find('input', {'name': 'username'})
|
||||
resp = app.get(reverse('a2-manager-user-edit', kwargs={'pk': simple_user.id}))
|
||||
assert resp.html.find('input', {'name': 'username'})
|
||||
|
||||
# disable usernames on organizational unit
|
||||
simple_user.ou.show_username = False
|
||||
simple_user.ou.save()
|
||||
|
||||
resp = app.get(reverse('a2-manager-user-detail', kwargs={'pk': simple_user.id}))
|
||||
assert not resp.html.find('input', {'name': 'username'})
|
||||
resp = app.get(reverse('a2-manager-user-edit', kwargs={'pk': simple_user.id}))
|
||||
assert not resp.html.find('input', {'name': 'username'})
|
||||
|
||||
# but it's still displayed if it was set
|
||||
simple_user.username = 'user'
|
||||
simple_user.save()
|
||||
|
||||
resp = app.get(reverse('a2-manager-user-detail', kwargs={'pk': simple_user.id}))
|
||||
assert resp.html.find('input', {'name': 'username'})
|
||||
resp = app.get(reverse('a2-manager-user-edit', kwargs={'pk': simple_user.id}))
|
||||
assert resp.html.find('input', {'name': 'username'})
|
||||
|
|
Loading…
Reference in New Issue