diff --git a/src/handlers/singleuserhdr/handlers.go b/src/handlers/singleuserhdr/handlers.go index dc5f122..bf37c96 100644 --- a/src/handlers/singleuserhdr/handlers.go +++ b/src/handlers/singleuserhdr/handlers.go @@ -1,8 +1,6 @@ package singleuserhdr import ( - "crypto/rand" - "crypto/sha1" "errors" "fmt" "time" @@ -60,30 +58,11 @@ func (h *SimpleUserHandlers) IsInited() bool { return ok } -func generatePwd() (string, error) { - size := 10 - buf := make([]byte, size) - size, err := rand.Read(buf) - if err != nil { - return "", err - } - - return fmt.Sprintf("%x", sha1.Sum(buf[:size]))[:8], nil -} - func (h *SimpleUserHandlers) Init(userName, pwd string) (string, error) { if userName == "" { return "", errors.New("user name can not be empty") } - var err error - if pwd == "" { - tmpPwd, err := generatePwd() - if err != nil { - return "", err - } - pwd = tmpPwd - } pwdHash, err := bcrypt.GenerateFromPassword([]byte(pwd), 10) if err != nil { return "", err diff --git a/src/server/server.go b/src/server/server.go index fc265da..76b7f4d 100644 --- a/src/server/server.go +++ b/src/server/server.go @@ -3,6 +3,7 @@ package server import ( "context" "crypto/rand" + "crypto/sha1" "fmt" "net/http" "time" @@ -96,18 +97,24 @@ func initHandlers(router *gin.Engine, cfg gocfg.ICfg, deps *depidx.Deps) (*gin.E if cfg.BoolOr("Users.EnableAuth", true) && !userHdrs.IsInited() { adminName, ok := cfg.String("ENV.DEFAULTADMIN") if !ok || adminName == "" { - // TODO: print sceen only - fmt.Println("Please input admin name:") + fmt.Print("Please input admin name: ") fmt.Scanf("%s", &adminName) } adminPwd, _ := cfg.String("ENV.DEFAULTADMINPWD") + if adminPwd == "" { + adminPwd, err = generatePwd() + if err != nil { + return nil, err + } + fmt.Printf("password is generated: %s, please update it after login\n", adminPwd) + } adminPwd, err := userHdrs.Init(adminName, adminPwd) if err != nil { return nil, err } - fmt.Printf("%s is created, its password is %s, please update it after login\n", adminName, adminPwd) + fmt.Printf("user (%s) is created\n", adminName) } fileHdrs, err := fileshdr.NewFileHandlers(cfg, deps) @@ -173,3 +180,14 @@ func makeRandToken() string { } return string(b) } + +func generatePwd() (string, error) { + size := 10 + buf := make([]byte, size) + size, err := rand.Read(buf) + if err != nil { + return "", err + } + + return fmt.Sprintf("%x", sha1.Sum(buf[:size]))[:6], nil +}