后端改进: - 修复 dashboard/recent-alerts 的 limit 参数解析 (原代码错误地将数字解析为日期) - 为 dashboard/recent-releases 添加 limit 参数解析支持 - 新增 generateAppReleases 种子数据生成函数 (10条应用发布记录) - 修复 AlertEvent 的 rule_name/rule_id/severity 数据一致性 - 添加 go-ldap/ldap/v3 依赖并集成 LDAP 认证处理器 - 添加 seed.go 自动种子数据初始化 (admin用户+LDAP配置) - User model 添加 AuthSource/LDAPConfig 字段 前端改进: - 修复 User 类型定义以匹配后端 API (real_name/is_admin/auth_source等) - 修复 Header.tsx 的 real_name 属性引用导致 TypeScript 编译错误 - 统一 API 服务层、暗色主题样式、组件联调优化 验证: - go build ./... 编译通过 - npm run build 构建通过 - 仪表盘发布历史、告警消息等区域数据正常展示 - 健康检查 /health 正常
59 lines
1.6 KiB
Go
59 lines
1.6 KiB
Go
package main
|
|
|
|
import (
|
|
"ezops/internal/models"
|
|
|
|
"go.uber.org/zap"
|
|
"golang.org/x/crypto/bcrypt"
|
|
"gorm.io/gorm"
|
|
)
|
|
|
|
// seedData 初始化种子数据(admin用户 + LDAP配置)
|
|
func seedData(db *gorm.DB) {
|
|
// 1. 创建默认 admin 用户(仅首次)
|
|
var userCount int64
|
|
db.Model(&models.User{}).Count(&userCount)
|
|
if userCount == 0 {
|
|
hashedPassword, _ := bcrypt.GenerateFromPassword([]byte("123456"), bcrypt.DefaultCost)
|
|
admin := models.User{
|
|
Username: "admin",
|
|
Password: string(hashedPassword),
|
|
Email: "admin@ezops.local",
|
|
RealName: "管理员",
|
|
Status: 1,
|
|
IsAdmin: true,
|
|
AuthSource: "local",
|
|
}
|
|
if err := db.Create(&admin).Error; err != nil {
|
|
zap.L().Warn("failed to seed admin user", zap.Error(err))
|
|
} else {
|
|
zap.L().Info("seeded default admin user (admin/123456)")
|
|
}
|
|
}
|
|
|
|
// 2. 创建默认 LDAP 配置
|
|
var ldapCount int64
|
|
db.Model(&models.LDAPConfig{}).Count(&ldapCount)
|
|
if ldapCount == 0 {
|
|
port := 389
|
|
useLDAPS := false
|
|
searchFilter := "(objectClass=inetOrgPerson)"
|
|
userMapping := `{"username":"uid","email":"mail","display_name":"cn"}`
|
|
ldapCfg := models.LDAPConfig{
|
|
LDAPHost: "8.217.205.92",
|
|
LDAPPort: &port,
|
|
UseLDAPS: &useLDAPS,
|
|
AdminDN: "cn=admin,dc=opsx,dc=vip",
|
|
AdminPassword: "LQl2GX7EEg2N",
|
|
BaseDN: "dc=opsx,dc=vip",
|
|
SearchFilter: &searchFilter,
|
|
UserMapping: &userMapping,
|
|
}
|
|
if err := db.Create(&ldapCfg).Error; err != nil {
|
|
zap.L().Warn("failed to seed LDAP config", zap.Error(err))
|
|
} else {
|
|
zap.L().Info("seeded default LDAP config (8.217.205.92:389)")
|
|
}
|
|
}
|
|
}
|