Files

43 lines
923 B
Go
Raw Permalink Normal View History

2026-07-23 13:54:39 +08:00
package initdb
import (
2026-07-24 10:13:50 +08:00
"senlinai-agent/backend/internal/models"
2026-07-23 13:54:39 +08:00
"golang.org/x/crypto/bcrypt"
"gorm.io/gorm"
)
const (
rootUsername = "root"
rootPassword = "123456"
rootRole = "root"
)
// 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) {
2026-07-23 13:54:39 +08:00
var count int64
2026-07-24 10:13:50 +08:00
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
2026-07-23 13:54:39 +08:00
}
2026-07-24 10:13:50 +08:00
return &user, nil
2026-07-23 13:54:39 +08:00
}