Browse Source

HUE-6241 [useradmin] Add and modify a user in Hue 4 behaves correctly

Enrico Berti 8 years ago
parent
commit
19f6907

+ 19 - 3
apps/useradmin/src/useradmin/templates/edit_user.mako

@@ -103,11 +103,14 @@ ${ layout.menubar(section='users') }
       <div class="form-actions">
         <a class="backBtn btn disabled">${ _('Back') }</a>
         <a class="nextBtn btn btn-primary disable-feedback">${ _('Next') }</a>
-      % if username:
+        % if is_embeddable:
+          <input type="hidden" value="true" name="is_embeddable" />
+        % endif
+        % if username:
         <input type="submit" class="btn btn-primary" value="${_('Update user')}"/>
-      % else:
+        % else:
         <input type="submit" class="btn btn-primary" value="${_('Add user')}"/>
-      % endif
+        % endif
       </div>
     </form>
   </div>
@@ -131,6 +134,19 @@ $(document).ready(function(){
     height:240
   });
 
+
+  % if is_embeddable:
+  $editUserComponents.find('#editForm').attr('action', window.location.pathname.substr(4).replace(/\/$/, ''));
+  $editUserComponents.find('#editForm').ajaxForm({
+    dataType:  'json',
+    success: function(data) {
+      if (data && data.url){
+        huePubSub.publish('open.link', data.url);
+      }
+    }
+  });
+  % endif
+
  var currentStep = "step1";
 
  routie({

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

@@ -249,7 +249,7 @@ def edit_user(request, username=None):
 
   userprofile = get_profile(request.user)
   updated = False
-  is_embeddable = request.GET.get('is_embeddable', False)
+  is_embeddable = request.GET.get('is_embeddable', request.POST.get('is_embeddable', False))
 
   if username is not None:
     instance = User.objects.get(username=username)
@@ -346,9 +346,15 @@ def edit_user(request, username=None):
         else:
           return redirect(reverse('desktop.views.home'))
       elif request.user.is_superuser:
-        return redirect(reverse(list_users))
+        if is_embeddable:
+          return JsonResponse({'url': '/hue' + reverse(list_users)})
+        else:
+          return redirect(reverse(list_users))
       else:
-        return redirect(reverse(edit_user, kwargs={'username': username}))
+        if is_embeddable:
+          return JsonResponse({'url': '/hue' + reverse(edit_user, kwargs={'username': username})})
+        else:
+          return redirect(reverse(edit_user, kwargs={'username': username}))
   else:
     # Initialize form values
     default_user_group = get_default_user_group()
@@ -433,7 +439,7 @@ def edit_group(request, name=None):
         }
 
       if is_embeddable:
-        return redirect('/hue/useradmin/groups')
+        return JsonResponse({'url': '/hue' + reverse(list_groups)})
       else:
         request.info(_('Group information updated'))
         return redirect('/useradmin/groups')