manager: replace invalid widget split term operator (#39380)

This commit is contained in:
Valentin Deniaud 2020-01-29 15:31:22 +01:00
parent 64abfdca0c
commit 86fe3b2958
2 changed files with 22 additions and 2 deletions

View File

@ -125,7 +125,7 @@ class ChooseRolesWidget(RoleLabelMixin, SecurityCheckMixin, ModelSelect2Multiple
class ChooseRolesForChangeWidget(RoleLabelMixin, SecurityCheckMixin, ModelSelect2MultipleWidget):
operations = ['change']
queryset = get_role_model().objects.all()
split_term_operator = 'AND'
split_term_operator = operator.__and__
search_fields = [
'name__icontains',
'service__name__icontains',
@ -135,7 +135,7 @@ class ChooseRolesForChangeWidget(RoleLabelMixin, SecurityCheckMixin, ModelSelect
class ChooseOUWidget(SecurityCheckMixin, ModelSelect2Widget):
model = get_ou_model()
split_term_operator = 'AND'
split_term_operator = operator.__and__
search_fields = [
'name__icontains',
]

View File

@ -845,6 +845,26 @@ def test_roles_widget(admin, app, db):
assert response.json['results'][0]['text'] == u'La Bédoule - Administrateur'
def test_roles_for_change_widget(admin, app, db):
from django.core import signing
from authentic2.manager.forms import RolesForChangeForm
login(app, admin, '/manage/')
Role.objects.create(name=u'admin 1')
Role.objects.create(name=u'user 1')
form = RolesForChangeForm()
assert form.as_p()
field_id = signing.dumps(id(form.fields['roles'].widget))
url = reverse('django_select2-json')
response = app.get(url, params={'field_id': field_id, 'term': 'admin'})
assert len(response.json['results']) == 1
response = app.get(url, params={'field_id': field_id, 'term': '1'})
assert len(response.json['results']) == 2
response = app.get(url, params={'field_id': field_id, 'term': 'user 1'})
assert len(response.json['results']) == 1
def test_user_add_settings(settings, admin, app, db):
passwd_options = ('generate_password', 'reset_password_at_next_login',
'send_mail', 'send_password_reset')