From 020eb923187a3d85ae3895e5915006439d083aa5 Mon Sep 17 00:00:00 2001 From: Valentin Deniaud Date: Wed, 5 Jan 2022 14:35:47 +0100 Subject: [PATCH] manager: fix user/role choices mix in role member add field (#60299) --- src/authentic2/manager/role_views.py | 3 ++- tests/test_role_manager.py | 6 ++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/src/authentic2/manager/role_views.py b/src/authentic2/manager/role_views.py index cfac61f8..28e37d5d 100644 --- a/src/authentic2/manager/role_views.py +++ b/src/authentic2/manager/role_views.py @@ -841,11 +841,12 @@ class UserOrRoleSelect2View(DetailView): role_page = role_paginator.page(page_number) except EmptyPage: role_page = [] + has_next = False else: has_next = role_page.has_next() user_page = [] - if len(role_page) < 10: + if not has_next: user_qs = self.form_class.get_user_queryset(self.request.user, role) user_qs = user_qs.exclude(roles=role) user_qs = self.filter_queryset( diff --git a/tests/test_role_manager.py b/tests/test_role_manager.py index b9734baa..0765ec38 100644 --- a/tests/test_role_manager.py +++ b/tests/test_role_manager.py @@ -549,6 +549,12 @@ def test_role_members_user_role_mixed_field_choices( select2_json = request_select2(app, resp, term='test_user_', fetch_all=True) assert len(select2_json['results']) == 25 + for i in range(10): + Role.objects.create(name=f'test_xxx_{i}') + User.objects.create(username='test_xxx_10') + select2_json = request_select2(app, resp, term='test_xxx_') + assert len(select2_json['results']) == 11 + def test_role_members_user_role_add_remove(app, superuser, settings, simple_role, simple_user, role_ou1): url = reverse('a2-manager-role-members', kwargs={'pk': simple_role.pk}) -- 2.30.2