浏览代码

HUE-2657 [core] Can not remove user from a document's "Sharing" dialog if just one user plus one group is present

Fixed sync_permissions method
Fixed CSS for the sharing modal
Fixed problem with the same name for a group and a user
Enrico Berti 10 年之前
父节点
当前提交
b4a7926

+ 2 - 1
desktop/core/src/desktop/models.py

@@ -549,9 +549,10 @@ class Document(models.Model):
     """
     for name, perm in perms_dict.iteritems():
       users = groups = None
-
       if perm.get('user_ids'):
         users = auth_models.User.objects.in_bulk(perm.get('user_ids'))
+      else:
+        users = []
 
       if perm.get('group_ids'):
         groups = auth_models.Group.objects.in_bulk(perm.get('group_ids'))

+ 10 - 0
desktop/core/src/desktop/static/desktop/css/hue3.css

@@ -1931,4 +1931,14 @@ form.form-inline .modal-header .close {
 
 .no-margin {
   margin: 0;
+}
+
+.badge-left {
+  border-top-right-radius: 0;
+  border-bottom-right-radius: 0;
+}
+
+.badge-right {
+  border-top-left-radius: 0;
+  border-bottom-left-radius: 0;
 }

+ 6 - 6
desktop/core/src/desktop/static/desktop/js/share.vm.js

@@ -93,16 +93,17 @@ function setupSharing(id, updateFunc) {
       self.hasSetupBeenCalled = true;
       JSON_USERS_GROUPS = data;
       dropdown = [];
-      map = {};
+      usermap = {};
+      groupmap = {};
 
       $.each(JSON_USERS_GROUPS.users, function (i, user) {
         var _display = prettifyUsername(user.id);
-        map[_display] = user;
+        usermap[_display] = user;
         dropdown.push(_display);
       });
 
       $.each(JSON_USERS_GROUPS.groups, function (i, group) {
-        map[group.name] = group;
+        groupmap[group.name] = group;
         dropdown.push(group.name);
       });
 
@@ -120,8 +121,7 @@ function setupSharing(id, updateFunc) {
         },
         highlighter: function (item) {
           var _icon = "fa";
-          var _display = "";
-          if (map[item].hasOwnProperty("username")) {
+          if (usermap[item]) {
             _icon += " fa-user";
           }
           else {
@@ -131,7 +131,7 @@ function setupSharing(id, updateFunc) {
           return "<i class='" + _icon + "'></i> " + item.replace(regex, "<strong>$1</strong>");
         },
         updater: function (item) {
-          selectedUserOrGroup = map[item];
+          selectedUserOrGroup = usermap[item] ? usermap[item] : groupmap[item];
           return item;
         }
       });