diff --git a/internal/setup/sql_executor.go b/internal/setup/sql_executor.go index aed33bd8..0634d8f9 100644 --- a/internal/setup/sql_executor.go +++ b/internal/setup/sql_executor.go @@ -12,6 +12,7 @@ import ( "github.com/iwind/TeaGo/maps" "github.com/iwind/TeaGo/rands" "github.com/iwind/TeaGo/types" + stringutil "github.com/iwind/TeaGo/utils/string" "gopkg.in/yaml.v3" "io" "os" @@ -86,8 +87,14 @@ func (this *SQLExecutor) Run(showLog bool) error { // 检查数据 func (this *SQLExecutor) checkData(db *dbs.DB) error { + // 检查初始化用户 + err := this.checkUser(db) + if err != nil { + return err + } + // 检查管理员平台节点 - err := this.checkAdminNode(db) + err = this.checkAdminNode(db) if err != nil { return err } @@ -137,6 +144,20 @@ func (this *SQLExecutor) checkData(db *dbs.DB) error { return nil } +// 创建初始用户 +func (this *SQLExecutor) checkUser(db *dbs.DB) error { + one, err := db.FindOne("SELECT id FROM edgeUsers LIMIT 1") + if err != nil { + return err + } + if len(one) > 0 { + return nil + } + + _, err = db.Exec("INSERT INTO edgeUsers (`username`, `password`, `fullname`, `isOn`, `state`, `createdAt`) VALUES (?, ?, ?, ?, ?, ?)", "USER-"+rands.HexString(10), stringutil.Md5(rands.HexString(32)), "默认用户", 1, 1, time.Now().Unix()) + return err +} + // 检查管理员平台节点 func (this *SQLExecutor) checkAdminNode(db *dbs.DB) error { stmt, err := db.Prepare("SELECT COUNT(*) FROM edgeAPITokens WHERE role='admin'")