Преглед изворни кода

HUE-8530 [organization] Workaround sortings hardcoded to username

Romain пре 5 година
родитељ
комит
cb39639930
2 измењених фајлова са 17 додато и 4 уклоњено
  1. 8 1
      apps/useradmin/src/useradmin/tests.py
  2. 9 3
      apps/useradmin/src/useradmin/views.py

+ 8 - 1
apps/useradmin/src/useradmin/tests.py

@@ -39,7 +39,7 @@ import desktop.conf
 
 from desktop import appmanager
 from desktop.auth.backend import is_admin, create_user
-from desktop.conf import APP_BLACKLIST
+from desktop.conf import APP_BLACKLIST, ENABLE_ORGANIZATIONS
 from desktop.lib.django_test_util import make_logged_in_client
 from desktop.lib.test_utils import grant_access
 from desktop.views import home
@@ -946,6 +946,13 @@ class TestUserAdmin(BaseUserAdminTests):
     assert_true(u'group_test_list_for_autocomplete' in groups, groups)
     assert_false(u'group_test_list_for_autocomplete_other_group' in groups, groups)
 
+    reset = ENABLE_ORGANIZATIONS.set_for_testing(True)
+    try:
+      response = c1.get(reverse('useradmin_views_list_for_autocomplete'))  # Actually always good as DB created pre-setting flag to True
+      assert_equal(200, response.status_code)
+    finally:
+      reset()
+
     # only_mygroups has no effect if user is not super user
     response = c1.get(reverse('useradmin_views_list_for_autocomplete'), {'include_myself': True})
     content = json.loads(response.content)

+ 9 - 3
apps/useradmin/src/useradmin/views.py

@@ -121,14 +121,20 @@ def list_for_autocomplete(request):
   count = int(request.GET.get("count", 100))
 
   if is_admin(request.user):
-    users = User.objects.filter(username__icontains=autocomplete_filter).order_by('username')
+    if ENABLE_ORGANIZATIONS.get():
+      users = User.objects.filter(email__icontains=autocomplete_filter).order_by('email')
+    else:
+      users = User.objects.filter(username__icontains=autocomplete_filter).order_by('username')
     groups = Group.objects.filter(name__icontains=autocomplete_filter).order_by('name')
     if request.GET.get('only_mygroups'):
       groups = request.user.groups.filter(name__icontains=autocomplete_filter).order_by('name')
   else:
     usergroups = request.user.groups.all()
     # Get all users in the usergroups he belongs to and then filter by username
-    users = User.objects.filter(groups__in=usergroups, username__icontains=autocomplete_filter).order_by('username').distinct()
+    if ENABLE_ORGANIZATIONS.get():
+      users = User.objects.filter(groups__in=usergroups, email__icontains=autocomplete_filter).order_by('email').distinct()
+    else:
+      users = User.objects.filter(groups__in=usergroups, username__icontains=autocomplete_filter).order_by('username').distinct()
     groups = usergroups.filter(name__icontains=autocomplete_filter).order_by('name')
 
   # Don't include myself by default
@@ -148,7 +154,7 @@ def list_for_autocomplete(request):
 def get_users_by_id(request):
   userids = json.loads(request.GET.get('userids', "[]"))
   userids = userids[:100]
-  users = User.objects.filter(id__in=userids).order_by('username')
+  users = User.objects.filter(id__in=userids).order_by('email' if ENABLE_ORGANIZATIONS.get() else 'username')
   response = {
     'users': massage_users_for_json(users)
   }