From 7853bf9808c584a90385f87361b9f29baefa2359 Mon Sep 17 00:00:00 2001 From: Sheep26 Date: Sat, 18 Jan 2025 13:52:05 +1300 Subject: [PATCH] refactor the fix issues --- route/v1/samba.go | 17 +++----------- service/shares.go | 59 +++++++++++++++++++++++------------------------ 2 files changed, 32 insertions(+), 44 deletions(-) diff --git a/route/v1/samba.go b/route/v1/samba.go index 28131a9..7bc3eb2 100644 --- a/route/v1/samba.go +++ b/route/v1/samba.go @@ -69,22 +69,11 @@ func GetSambaSharesList(ctx echo.Context) error { return ctx.JSON(common_err.SUCCESS, model.Result{Success: common_err.SUCCESS, Message: common_err.GetMsg(common_err.SUCCESS), Data: shareList}) } -func ListSambaUsers(ctx echo.Context) error { - out, err := command.OnlyExec("source " + config.AppInfo.ShellPath + "/helper.sh ;ListSambaUsers ") - - if err != nil { - return ctx.JSON(common_err.SERVICE_ERROR, model.Result{Success: common_err.SERVICE_ERROR, Message: common_err.GetMsg(common_err.SERVICE_ERROR)}) - } - - users := strings.Split(out, "\n") - - return ctx.JSON(common_err.SUCCESS, model.Result{Success: common_err.SUCCESS, Message: common_err.GetMsg(common_err.SUCCESS), Data: users}) -} - func AddSambaUser(ctx echo.Context) error { + source := "source " + config.AppInfo.ShellPath users := []model.SMBUsers{} ctx.Bind(&users) - out, err := command.OnlyExec("source " + config.AppInfo.ShellPath + "/helper.sh ;ListSambaUsers ") + out, err := command.OnlyExec(source + "/helper.sh ;ListSambaUsers ") if err != nil { return ctx.JSON(common_err.SERVICE_ERROR, model.Result{Success: common_err.SERVICE_ERROR, Message: common_err.GetMsg(common_err.SERVICE_ERROR)}) @@ -92,7 +81,7 @@ func AddSambaUser(ctx echo.Context) error { for _, v := range users { if !strings.Contains(out, v.Name) { - command.OnlyExec("source " + config.AppInfo.ShellPath + "/helper.sh ;AddSmabaUser " + v.Name + " " + v.Password) + command.OnlyExec(source + "/helper.sh ;AddSmabaUser " + v.Name + " " + v.Password) } } diff --git a/service/shares.go b/service/shares.go index 106af6a..0cf44a2 100644 --- a/service/shares.go +++ b/service/shares.go @@ -69,6 +69,31 @@ func (s *sharesStruct) DeleteShare(id string) { s.UpdateConfigFile() } +func getAnonymous(share model2.SharesDBModel) string { + if share.Anonymous { + return `Yes` + } + return `No` +} + +func forceRoot(share model2.SharesDBModel) string { + if share.Anonymous { + return `force user = root` + } + return `#force user = root` +} + +func getValidUsers(share model2.SharesDBModel) string { + if !share.Anonymous && len(share.Valid_users) > 0 { + users := `valid users =` + for _, user := range share.Valid_users { + users += " " + user + } + return users + "\n" + } + return "" +} + func (s *sharesStruct) UpdateConfigFile() { shares := []model2.SharesDBModel{} s.db.Select("anonymous,path,valid_users").Find(&shares) @@ -79,41 +104,15 @@ func (s *sharesStruct) UpdateConfigFile() { configStr += ` [` + dirName + `] comment = CasaOS share ` + dirName + ` -public = ` + func() string { - if share.Anonymous { - return "Yes" - } - return "No" - }() + ` +public = ` + getAnonymous(share) + ` path = ` + share.Path + ` browseable = Yes read only = No -guest ok = ` + func() string { - if share.Anonymous { - return "Yes" - } - return "No" - }() + ` +guest ok = ` + getAnonymous(share) + ` create mask = 0777 directory mask = 0777 -` + func() string { - if share.Anonymous { - return `force user = root -` - } - return `#force user = root -` - }() + func() string { - if !share.Anonymous && len(share.Valid_users) > 0 { - users := `valid users =` - for _, user := range share.Valid_users { - users += " " + user - } - return users + "\n" - } - return "" - }() - } +` + forceRoot(share) + ` +` + getValidUsers(share) // write config file file.WriteToPath([]byte(configStr), "/etc/samba", "smb.casa.conf") // restart samba