Browse Source

HUE-8530 [organization] Only list the group of the user organization

Romain 5 years ago
parent
commit
92ae1cb61f

+ 4 - 1
apps/useradmin/src/useradmin/forms.py

@@ -153,6 +153,9 @@ class UserChangeForm(django.contrib.auth.forms.UserChangeForm):
       if 'groups' in self.fields:
       if 'groups' in self.fields:
         self.fields['groups'].widget.attrs['readonly'] = True
         self.fields['groups'].widget.attrs['readonly'] = True
 
 
+    if ENABLE_ORGANIZATIONS.get():
+      self.fields['groups'].choices = [(group.id, group.name) for group in self.instance.organization.organizationgroup_set.all()]
+
   def clean_username(self):
   def clean_username(self):
     username = self.cleaned_data["username"]
     username = self.cleaned_data["username"]
     if self.instance.username == username:
     if self.instance.username == username:
@@ -322,7 +325,7 @@ class SuperUserChangeForm(UserChangeForm):
       # If the user exists already, we'll use its current group memberships
       # If the user exists already, we'll use its current group memberships
       self.initial['groups'] = set(self.instance.groups.all())
       self.initial['groups'] = set(self.instance.groups.all())
     else:
     else:
-      # If his is a new user, suggest the default group
+      # If this is a new user, suggest the default group
       default_group = get_default_user_group()
       default_group = get_default_user_group()
       if default_group is not None:
       if default_group is not None:
         self.initial['groups'] = set([default_group])
         self.initial['groups'] = set([default_group])

+ 2 - 1
apps/useradmin/src/useradmin/templates/layout.mako

@@ -15,8 +15,9 @@
 ## limitations under the License.
 ## limitations under the License.
 
 
 <%!
 <%!
-from desktop import conf
 from django.utils.translation import ugettext as _
 from django.utils.translation import ugettext as _
+
+from desktop import conf
 from desktop.auth.backend import is_admin
 from desktop.auth.backend import is_admin
 
 
 def is_selected(section, matcher):
 def is_selected(section, matcher):

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

@@ -289,8 +289,7 @@ def edit_user(request, username=None):
   is_embeddable = request.GET.get('is_embeddable', request.POST.get('is_embeddable', False))
   is_embeddable = request.GET.get('is_embeddable', request.POST.get('is_embeddable', False))
 
 
   if username is not None:
   if username is not None:
-    lookup = {'email': username} if ENABLE_ORGANIZATIONS.get() else {'username': username}
-    instance = User.objects.get(**lookup)
+    instance = User.objects.get(username=username)
   else:
   else:
     instance = None
     instance = None
 
 
@@ -316,7 +315,7 @@ def edit_user(request, username=None):
         if request.user.username == username and not form.instance.is_active:
         if request.user.username == username and not form.instance.is_active:
           raise PopupException(_("You cannot make yourself inactive."), error_code=401)
           raise PopupException(_("You cannot make yourself inactive."), error_code=401)
 
 
-        # user changing his own information, form.changed_data=['ensure_home_directory', 'language']
+        # User changing his own information, form.changed_data=['ensure_home_directory', 'language']
         # or changing information about another user, form.changed_data=['ensure_home_directory']
         # or changing information about another user, form.changed_data=['ensure_home_directory']
         updated = (
         updated = (
           request.user.username == username and len(form.changed_data) > 2) or (
           request.user.username == username and len(form.changed_data) > 2) or (
@@ -324,7 +323,7 @@ def edit_user(request, username=None):
         )
         )
 
 
         # form.instance (and instance) now carry the new data
         # form.instance (and instance) now carry the new data
-        orig = User.objects.get(**lookup)
+        orig = User.objects.get(username=username)
         if orig.is_superuser:
         if orig.is_superuser:
           if not form.instance.is_superuser or not form.instance.is_active:
           if not form.instance.is_superuser or not form.instance.is_active:
             _check_remove_last_super(orig)
             _check_remove_last_super(orig)