link 2 gadi atpakaļ
vecāks
revīzija
af440eac55
2 mainītis faili ar 31 papildinājumiem un 24 dzēšanām
  1. 16 18
      route/v1/samba.go
  2. 15 6
      service/connections.go

+ 16 - 18
route/v1/samba.go

@@ -16,7 +16,6 @@ import (
 	"net/http"
 	"os"
 	"path/filepath"
-	"regexp"
 	"strings"
 
 	"github.com/IceWhaleTech/CasaOS-Common/utils/logger"
@@ -27,7 +26,6 @@ import (
 	"github.com/IceWhaleTech/CasaOS/pkg/samba"
 	"github.com/IceWhaleTech/CasaOS/pkg/utils/common_err"
 	"github.com/IceWhaleTech/CasaOS/pkg/utils/file"
-	"github.com/IceWhaleTech/CasaOS/pkg/utils/ip_helper"
 	"github.com/IceWhaleTech/CasaOS/service"
 	model2 "github.com/IceWhaleTech/CasaOS/service/model"
 	"github.com/gin-gonic/gin"
@@ -139,22 +137,22 @@ func PostSambaConnectionsCreate(c *gin.Context) {
 		return
 	}
 
-	if ok, _ := regexp.MatchString(`^[\w@#*.]{4,30}$`, connection.Password); !ok {
-		c.JSON(common_err.CLIENT_ERROR, model.Result{Success: common_err.CHARACTER_LIMIT, Message: common_err.GetMsg(common_err.CHARACTER_LIMIT)})
-		return
-	}
-	if ok, _ := regexp.MatchString(`^[\w@#*.]{4,30}$`, connection.Username); !ok {
-		c.JSON(common_err.CLIENT_ERROR, model.Result{Success: common_err.INVALID_PARAMS, Message: common_err.GetMsg(common_err.INVALID_PARAMS)})
-		return
-	}
-	if !ip_helper.IsIPv4(connection.Host) && !ip_helper.IsIPv6(connection.Host) {
-		c.JSON(common_err.CLIENT_ERROR, model.Result{Success: common_err.INVALID_PARAMS, Message: common_err.GetMsg(common_err.INVALID_PARAMS)})
-		return
-	}
-	if ok, _ := regexp.MatchString("^[0-9]{1,6}$", connection.Port); !ok {
-		c.JSON(common_err.CLIENT_ERROR, model.Result{Success: common_err.INVALID_PARAMS, Message: common_err.GetMsg(common_err.INVALID_PARAMS)})
-		return
-	}
+	// if ok, _ := regexp.MatchString(`^[\w@#*.]{4,30}$`, connection.Password); !ok {
+	// 	c.JSON(common_err.CLIENT_ERROR, model.Result{Success: common_err.CHARACTER_LIMIT, Message: common_err.GetMsg(common_err.CHARACTER_LIMIT)})
+	// 	return
+	// }
+	// if ok, _ := regexp.MatchString(`^[\w@#*.]{4,30}$`, connection.Username); !ok {
+	// 	c.JSON(common_err.CLIENT_ERROR, model.Result{Success: common_err.INVALID_PARAMS, Message: common_err.GetMsg(common_err.INVALID_PARAMS)})
+	// 	return
+	// }
+	// if !ip_helper.IsIPv4(connection.Host) && !ip_helper.IsIPv6(connection.Host) {
+	// 	c.JSON(common_err.CLIENT_ERROR, model.Result{Success: common_err.INVALID_PARAMS, Message: common_err.GetMsg(common_err.INVALID_PARAMS)})
+	// 	return
+	// }
+	// if ok, _ := regexp.MatchString("^[0-9]{1,6}$", connection.Port); !ok {
+	// 	c.JSON(common_err.CLIENT_ERROR, model.Result{Success: common_err.INVALID_PARAMS, Message: common_err.GetMsg(common_err.INVALID_PARAMS)})
+	// 	return
+	// }
 
 	connection.Host = strings.Split(connection.Host, "/")[0]
 	// check is exists

+ 15 - 6
service/connections.go

@@ -11,11 +11,12 @@
 package service
 
 import (
-	"github.com/IceWhaleTech/CasaOS/pkg/config"
-	command2 "github.com/IceWhaleTech/CasaOS/pkg/utils/command"
+	"fmt"
+
 	"github.com/IceWhaleTech/CasaOS/service/model"
 	model2 "github.com/IceWhaleTech/CasaOS/service/model"
 	"github.com/moby/sys/mount"
+	"golang.org/x/sys/unix"
 	"gorm.io/gorm"
 )
 
@@ -26,7 +27,7 @@ type ConnectionsService interface {
 	CreateConnection(connection *model2.ConnectionsDBModel)
 	DeleteConnection(id string)
 	UpdateConnection(connection *model2.ConnectionsDBModel)
-	MountSmaba(username, host, directory, port, mountPoint, password string) string
+	MountSmaba(username, host, directory, port, mountPoint, password string) error
 	UnmountSmaba(mountPoint string) error
 }
 
@@ -56,9 +57,17 @@ func (s *connectionsStruct) DeleteConnection(id string) {
 	s.db.Where("id= ?", id).Delete(&model.ConnectionsDBModel{})
 }
 
-func (s *connectionsStruct) MountSmaba(username, host, directory, port, mountPoint, password string) string {
-	str := command2.ExecResultStr("source " + config.AppInfo.ShellPath + "/helper.sh ;MountCIFS " + username + " " + host + " " + directory + " " + port + " " + mountPoint + " " + password)
-	return str
+func (s *connectionsStruct) MountSmaba(username, host, directory, port, mountPoint, password string) error {
+	err := unix.Mount(
+		fmt.Sprintf("//%s/%s", host, directory),
+		mountPoint,
+		"cifs",
+		unix.MS_NOATIME|unix.MS_NODEV|unix.MS_NOSUID,
+		fmt.Sprintf("username=%s,password=%s", username, password),
+	)
+	return err
+	//str := command2.ExecResultStr("source " + config.AppInfo.ShellPath + "/helper.sh ;MountCIFS " + username + " " + host + " " + directory + " " + port + " " + mountPoint + " " + password)
+	//return str
 }
 func (s *connectionsStruct) UnmountSmaba(mountPoint string) error {
 	return mount.Unmount(mountPoint)