package user import ( "caddydash/db" "fmt" "golang.org/x/crypto/bcrypt" ) func InitAdminUser(username string, password string, cdb *db.ConfigDB) error { hasUser, err := cdb.HasAnyUser() if err != nil { return fmt.Errorf("failed to check if any user exists: %w", err) } if hasUser { userStatus.SetInitialized(true) return nil } hashedPassword, err := hashPassword(password) if err != nil { return fmt.Errorf("failed to hash password: %w", err) } err = cdb.AddUser(username, hashedPassword) if err != nil { return fmt.Errorf("failed to add admin user: %w", err) } userStatus.SetInitialized(true) return nil } // bcrypt加密password串 func hashPassword(password string) (string, error) { bytes, err := bcrypt.GenerateFromPassword([]byte(password), 11) if err != nil { return "", err } return string(bytes), err } func InitAdminUserStatus(cdb *db.ConfigDB) error { hasUser, err := cdb.HasAnyUser() if err != nil { return fmt.Errorf("failed to check if any user exists: %w", err) } if hasUser { userStatus.SetInitialized(true) return nil } else { userStatus.SetInitialized(false) return nil } }