Bladeren bron

HUE-8530 [organization] Properly create new users in the current organization

Romain 5 jaren geleden
bovenliggende
commit
a74ce89ae2
2 gewijzigde bestanden met toevoegingen van 19 en 18 verwijderingen
  1. 6 5
      apps/useradmin/src/useradmin/forms.py
  2. 13 13
      apps/useradmin/src/useradmin/templates/edit_user.mako

+ 6 - 5
apps/useradmin/src/useradmin/forms.py

@@ -32,7 +32,7 @@ from desktop.settings import LANGUAGES
 
 from useradmin.hue_password_policy import hue_get_password_validators
 from useradmin.models import GroupPermission, HuePermission, get_default_user_group, User, Group, Organization
-from useradmin.organization import default_organization
+from useradmin.organization import get_user_request_organization
 
 
 LOG = logging.getLogger(__name__)
@@ -154,7 +154,8 @@ class UserChangeForm(django.contrib.auth.forms.UserChangeForm):
         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()]
+      organization = self.instance.organization if self.instance.id else get_user_request_organization()
+      self.fields['groups'].choices = [(group.id, group.name) for group in organization.organizationgroup_set.all()]
 
   def clean_username(self):
     username = self.cleaned_data["username"]
@@ -224,7 +225,7 @@ if ENABLE_ORGANIZATIONS.get():
         self.fields['email'].widget.attrs['readonly'] = True
 
       self.fields['organization'] = forms.ChoiceField(
-        choices=((default_organization().id, default_organization()),), initial=default_organization()
+        choices=((get_user_request_organization().id, get_user_request_organization()),), initial=get_user_request_organization()
       )
 
     def clean_organization(self):
@@ -274,7 +275,7 @@ if ENABLE_ORGANIZATIONS.get():
         self.fields['email'].widget.attrs['readonly'] = True
 
       self.fields['organization'] = forms.ChoiceField(
-        choices=((default_organization().id, default_organization()),), initial=default_organization()
+        choices=((get_user_request_organization().id, get_user_request_organization()),), initial=get_user_request_organization()
       )
 
     def clean_organization(self):
@@ -457,7 +458,7 @@ class GroupEditForm(forms.ModelForm):
     self.fields["permissions"] = _make_model_field(_("permissions"), initial_perms, HuePermission.objects.order_by('app', 'description'))
     if 'organization' in self.fields:
       self.fields['organization'] = forms.ChoiceField(
-        choices=((default_organization().id, default_organization()),), initial=default_organization()
+        choices=((get_user_request_organization().id, get_user_request_organization()),), initial=get_user_request_organization()
       )
 
   def _compute_diff(self, field_name):

+ 13 - 13
apps/useradmin/src/useradmin/templates/edit_user.mako

@@ -16,7 +16,7 @@
 <%!
 from django.utils.translation import ugettext as _
 
-from desktop.auth.backend import is_admin
+from desktop.auth.backend import is_admin, is_hue_admin
 from desktop.conf import ENABLE_ORGANIZATIONS, ENABLE_CONNECTORS
 from desktop.views import commonheader, commonfooter
 
@@ -35,16 +35,12 @@ ${ layout.menubar(section='users') }
 
 <div id="editUserComponents" class="useradmin container-fluid">
   <div class="card card-small title">
-    % if username:
-      <h1 class="card-heading simple">
-        ${_('User %(username)s') % dict(username=username)}
-        % if ENABLE_ORGANIZATIONS.get():
-          @ ${ user.organization }
-        % endif
-      </h1>
-    % else:
-      <h1 class="card-heading simple">${_('Create user')}</h1>
-    % endif
+    <h1 class="card-heading simple">
+      ${ _('User %(username)s') % dict(username=username) if username else _('Create user') }
+      % if ENABLE_ORGANIZATIONS.get():
+        @ ${ user.organization }
+      % endif
+    </h1>
 
     <br/>
 
@@ -87,7 +83,7 @@ ${ layout.menubar(section='users') }
           ${layout.render_field(form["password2"], extra_attrs=username is None and {'validate':'true'} or {})}
         % endif
 
-        % if ENABLE_CONNECTORS.get():
+        % if not ENABLE_CONNECTORS.get():
           ${ layout.render_field(form["ensure_home_directory"]) }
         % endif
         </div>
@@ -115,7 +111,11 @@ ${ layout.menubar(section='users') }
         % if is_admin(user):
           <div id="step3" class="stepDetails hide">
             ${ layout.render_field(form["is_active"]) }
-            ${ 'is_superuser' in form.fields and layout.render_field(form["is_superuser"]) }
+
+            % if is_hue_admin(user):
+              ${ 'is_superuser' in form.fields and layout.render_field(form["is_superuser"]) }
+            % endif
+
             % if is_user_locked_out(username):
               ${ layout.render_field(form["unlock_account"]) }
             % endif