From 9900235eaa757fc50a44f91ecc3a835c405f6fe6 Mon Sep 17 00:00:00 2001 From: yanweidong Date: Fri, 24 Jul 2026 10:13:50 +0800 Subject: [PATCH] fix bug --- backend/internal/initdb/user.go | 41 +++++++++++++++------------------ 1 file changed, 19 insertions(+), 22 deletions(-) diff --git a/backend/internal/initdb/user.go b/backend/internal/initdb/user.go index 5dc81fe..26623e0 100644 --- a/backend/internal/initdb/user.go +++ b/backend/internal/initdb/user.go @@ -1,9 +1,10 @@ package initdb import ( + "senlinai-agent/backend/internal/models" + "golang.org/x/crypto/bcrypt" "gorm.io/gorm" - "senlinai-agent/backend/internal/models" ) const ( @@ -15,31 +16,27 @@ const ( // InitUser returns the existing root user or creates and returns it when the user table is empty. func InitUser(database *gorm.DB) (*models.SaUser, error) { var count int64 - if err := database.Model(&models.SaUser{}).Count(&count).Error; err != nil { - return nil, err - } - if count > 0 { - var user models.SaUser - if err := database.Where("email = ? AND role = ?", rootUsername, rootRole). - First(&user).Error; err != nil { + var user models.SaUser + database.Model(&models.SaUser{}).Where("email=?", rootUsername).First(&user).Count(&count) + + if count == 0 { + passwordHash, err := bcrypt.GenerateFromPassword([]byte(rootPassword), bcrypt.DefaultCost) + if err != nil { + return nil, err + } + + user = models.SaUser{ + Email: rootUsername, + DisplayName: rootUsername, + PasswordHash: string(passwordHash), + Role: rootRole, + } + if err := database.Create(&user).Error; err != nil { return nil, err } return &user, nil } - passwordHash, err := bcrypt.GenerateFromPassword([]byte(rootPassword), bcrypt.DefaultCost) - if err != nil { - return nil, err - } + return &user, nil - user := &models.SaUser{ - Email: rootUsername, - DisplayName: rootUsername, - PasswordHash: string(passwordHash), - Role: rootRole, - } - if err := database.Create(user).Error; err != nil { - return nil, err - } - return user, nil }