update
This commit is contained in:
@ -62,34 +62,46 @@ func main() {
|
||||
log.Println("✓ users 表就绪")
|
||||
|
||||
// 2. 预置内部账号
|
||||
const username = "admin"
|
||||
const email = "admin@studio.local"
|
||||
password := os.Getenv("SEED_ADMIN_PASSWORD")
|
||||
if password == "" {
|
||||
password = "Studio#2026!Admin"
|
||||
// admin: 正式内部账号,密码取环境变量 SEED_ADMIN_PASSWORD(缺省回落强密码常量)。
|
||||
// root: 测试账号,固定弱密码 root,仅供本地联调使用,勿用于生产。
|
||||
adminPassword := os.Getenv("SEED_ADMIN_PASSWORD")
|
||||
if adminPassword == "" {
|
||||
adminPassword = "Studio#2026!Admin"
|
||||
}
|
||||
hash, e := bcrypt.GenerateFromPassword([]byte(password), bcrypt.DefaultCost)
|
||||
if e != nil {
|
||||
log.Fatalf("✗ 生成密码哈希失败: %v", e)
|
||||
accounts := []struct {
|
||||
username string
|
||||
email string
|
||||
password string
|
||||
}{
|
||||
{username: "admin", email: "admin@studio.local", password: adminPassword},
|
||||
{username: "root", email: "root@studio.local", password: "root"},
|
||||
}
|
||||
|
||||
var existing model.User
|
||||
qerr := db.Where("username = ?", username).First(&existing).Error
|
||||
switch {
|
||||
case errors.Is(qerr, gorm.ErrRecordNotFound):
|
||||
user := model.User{Username: username, Email: email, PasswordHash: string(hash)}
|
||||
if cerr := db.Create(&user).Error; cerr != nil {
|
||||
log.Fatalf("✗ 创建内部账号失败: %v", cerr)
|
||||
for _, acc := range accounts {
|
||||
hash, e := bcrypt.GenerateFromPassword([]byte(acc.password), bcrypt.DefaultCost)
|
||||
if e != nil {
|
||||
log.Fatalf("✗ 生成密码哈希失败(%s): %v", acc.username, e)
|
||||
}
|
||||
log.Printf("✓ 已创建内部账号: %s / %s", username, email)
|
||||
case qerr != nil:
|
||||
log.Fatalf("✗ 查询账号失败: %v", qerr)
|
||||
default:
|
||||
existing.PasswordHash = string(hash)
|
||||
if uerr := db.Save(&existing).Error; uerr != nil {
|
||||
log.Fatalf("✗ 更新账号密码失败: %v", uerr)
|
||||
|
||||
var existing model.User
|
||||
qerr := db.Where("username = ?", acc.username).First(&existing).Error
|
||||
switch {
|
||||
case errors.Is(qerr, gorm.ErrRecordNotFound):
|
||||
user := model.User{Username: acc.username, Email: acc.email, PasswordHash: string(hash)}
|
||||
if cerr := db.Create(&user).Error; cerr != nil {
|
||||
log.Fatalf("✗ 创建内部账号失败(%s): %v", acc.username, cerr)
|
||||
}
|
||||
log.Printf("✓ 已创建内部账号: %s / %s", acc.username, acc.email)
|
||||
case qerr != nil:
|
||||
log.Fatalf("✗ 查询账号失败(%s): %v", acc.username, qerr)
|
||||
default:
|
||||
existing.PasswordHash = string(hash)
|
||||
if uerr := db.Save(&existing).Error; uerr != nil {
|
||||
log.Fatalf("✗ 更新账号密码失败(%s): %v", acc.username, uerr)
|
||||
}
|
||||
log.Printf("✓ 内部账号已存在,已刷新密码哈希: %s", acc.username)
|
||||
}
|
||||
log.Printf("✓ 内部账号已存在,已刷新密码哈希: %s", username)
|
||||
log.Printf("ℹ 账号 %s 登录方式: %s / 密码: %s", acc.username, acc.username, acc.password)
|
||||
}
|
||||
log.Printf("ℹ 登录账号: %s 密码: %s(请尽快修改默认密码)", username, password)
|
||||
log.Println("⚠ admin 为强密码账号请尽快改默认密码;root 为弱密码测试账号,仅本地使用")
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user