diff --git a/route/v1.go b/route/v1.go index 19905ba..9904dd7 100644 --- a/route/v1.go +++ b/route/v1.go @@ -176,6 +176,11 @@ func InitV1Router() http.Handler { v1SharesGroup.DELETE("/:id", v1.DeleteSambaShares) v1SharesGroup.GET("/status", v1.GetSambaStatus) } + v1SharesGroup := v1SambaGroup.Group("/users") + v1SharesGroup.Use() + { + v1SharesGroup.GET("", v1.ListSambaUsers) + } } v1NotifyGroup := v1Group.Group("/notify") v1NotifyGroup.Use() diff --git a/route/v1/samba.go b/route/v1/samba.go index 70c6d72..170e9a6 100644 --- a/route/v1/samba.go +++ b/route/v1/samba.go @@ -17,6 +17,8 @@ import ( "os" "path/filepath" "strings" + "os/exec" + "strings" "github.com/IceWhaleTech/CasaOS-Common/utils/logger" "github.com/IceWhaleTech/CasaOS-Common/utils/systemctl" @@ -67,6 +69,18 @@ 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 := exec.Command("pdbedit -L").Output() + + if err != nil { + return ctx.JSON(common_err.SERVICE_ERROR, model.Result{Success: common_err.Failed, Message: common_err.GetMsg(common_err.Failed)}) + } + + users := strings.Split("\n") + + return ctx.JSON(common_err.SUCCESS, model.Result{Success: common_err.SUCCESS, Message: common_err.GetMsg(common_err.SUCCESS), Data: users}) +} + func PostSambaSharesCreate(ctx echo.Context) error { shares := []model.Shares{} ctx.Bind(&shares)