refactor the fix issues

This commit is contained in:
Sheep26 2025-01-18 13:52:05 +13:00
parent 636bf62056
commit 7853bf9808
2 changed files with 32 additions and 44 deletions

View File

@ -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)
}
}

View File

@ -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