Jelajahi Sumber

Fixed bug in editing smb share paths

aroz 1 tahun lalu
induk
melakukan
56224908e2

+ 6 - 2
mod/fileservers/servers/samba/required.go

@@ -41,8 +41,12 @@ func (m *ShareManager) GetEndpoints(userInfo *user.User) []*fileservers.Endpoint
 			fshID = userInfo.Username + "_" + fsh.UUID
 		}
 
-		shareExists, err := m.ShareExists(fshID)
-		if err != nil || !shareExists {
+		targetShare, err := m.GetShareByName(fshID)
+		if err != nil {
+			continue
+		}
+		userCanAccess := m.UserCanAccessShare(targetShare, userInfo.Username)
+		if err != nil || !userCanAccess {
 			continue
 		}
 

+ 15 - 1
web/SystemAO/disk/instr/samba.html

@@ -58,7 +58,7 @@
                     let visableLogo = "";
                     if (!smbShare.Browseable){
                         //This share is hidden from the share tree view
-                        
+
                     }
                     $("#userShareList").append(`<tr>
                         <td>${smbShare.Name}</td>
@@ -86,6 +86,12 @@
             }else{
                 if (data != false){
                     msgbox("SMB shares deactivated");
+
+                    if (typeof(initServiceList) != "undefined"){
+                        initServiceList(function(){
+                            openServerConfig("smbd", undefined, $(".servertype[uuid=\"smbd\"]"));
+                        });
+                    }
                 }
                 initSMBActivationStatusOnThisUser();
 
@@ -131,9 +137,17 @@
             }
             initSMBActivationStatusOnThisUser();
 
+            //Reload the share table
             if (typeof(initShareListTable) != "undefined"){
                 initShareListTable();
             }
+
+            //Reload the share endpoint in service list
+            if (typeof(initServiceList) != "undefined"){
+                initServiceList(function(){
+                    openServerConfig("smbd", undefined, $(".servertype[uuid=\"smbd\"]"));
+                });
+            }
         }
     }
 </script>

+ 1 - 1
web/SystemAO/disk/samba.html

@@ -205,7 +205,7 @@
                         <td>${item.ReadOnly?'<i class="ui green check icon"></i>':'<i class="ui red times icon"></i>'}</td>
                         <td>${item.Browseable?'<i class="ui green check icon"></i>':'<i class="ui red times icon"></i>'}</td>
                         <td>${item.GuestOk?'<i class="ui green check icon"></i>':'<i class="ui red times icon"></i>'}</td>
-                        <td><button class="ui basic circular mini red icon button" onclick="deleteSMBShare('${item.Name}');"><i class="ui trash icon"></i> Remove</button></td>
+                        <td><button title="Remove Share" class="ui basic circular tiny red circular icon button" onclick="deleteSMBShare('${item.Name}');"><i class="ui trash icon"></i></button></td>
                     </tr>
                 `;
             });

+ 5 - 1
web/SystemAO/disk/services.html

@@ -104,7 +104,7 @@
         }
         isAdminCheck();
 
-        function initServiceList(){
+        function initServiceList(callback=undefined){
             $("#serviceList").html("");
             $.get("../../system/network/server/list", function(data){
                 console.log(data);
@@ -191,6 +191,10 @@
                         }
                         updateAllServiceState();
                     }
+
+                    if (callback != undefined){
+                        callback();
+                    }
                 });
             });
        }