Selaa lähdekoodia

HUE-2840 [useradmin] Fix create home directories for Add/Sync LDAP group

krish 10 vuotta sitten
vanhempi
commit
a708fd5
1 muutettua tiedostoa jossa 14 lisäystä ja 2 poistoa
  1. 14 2
      apps/useradmin/src/useradmin/views.py

+ 14 - 2
apps/useradmin/src/useradmin/views.py

@@ -239,7 +239,7 @@ def edit_user(request, username=None):
         try:
           ensure_home_directory(request.fs, instance.username)
         except (IOError, WebHdfsException), e:
-          request.error(_('Cannot make home directory for user %s.' % instance.username))
+          request.error(_('Cannot make home directory for user %s.') % instance.username)
 
       if require_change_password(userprofile):
         userprofile.first_login = False
@@ -362,7 +362,7 @@ def add_ldap_users(request):
           try:
             ensure_home_directory(request.fs, user.username)
           except (IOError, WebHdfsException), e:
-            request.error(_("Cannot make home directory for user %s." % user.username))
+            request.error(_("Cannot make home directory for user %s.") % user.username)
 
       if not users:
         errors = form._errors.setdefault('username_pattern', ErrorList())
@@ -395,6 +395,7 @@ def add_ldap_groups(request):
       import_by_dn = form.cleaned_data['dn']
       import_members = form.cleaned_data['import_members']
       import_members_recursive = form.cleaned_data['import_members_recursive']
+      is_ensuring_home_directories = form.cleaned_data['ensure_home_directories']
       server = form.cleaned_data.get('server')
       try:
         connection = ldap_access.get_connection_from_server(server)
@@ -405,6 +406,17 @@ def add_ldap_groups(request):
       except AssertionError, e:
         raise PopupException(_('There was a problem with some of the LDAP information'), detail=str(e))
 
+      unique_users = set()
+      if is_ensuring_home_directories:
+        for group in groups:
+          for user in group.user_set.all():
+            unique_users.add(user)
+        for user in unique_users:
+          try:
+            ensure_home_directory(request.fs, user.username)
+          except (IOError, WebHdfsException), e:
+            raise PopupException(_("Exception creating home directory for LDAP user %s in group %s.") % (user, group), detail=e)
+
       if groups:
         return redirect(reverse(list_groups))
       else: