移除管理员数据库模型,改为通过配置管理管理员身份和认证逻辑,并更新相关逻辑和文档

This commit is contained in:
2026-01-14 18:12:54 +08:00
parent 8aa0988ab8
commit 903d5b865e
5 changed files with 32 additions and 40 deletions

View File

@@ -34,7 +34,6 @@ func InitDB() {
&model.FileBatch{},
&model.FileItem{},
&model.APIToken{},
&model.Admin{},
)
if err != nil {
log.Fatalf("Failed to migrate database: %v", err)
@@ -74,31 +73,28 @@ func ReloadStorage() error {
}
func initAdmin() {
var count int64
DB.Model(&model.Admin{}).Count(&count)
if count == 0 {
passwordHash := config.GlobalConfig.Security.AdminPasswordHash
if passwordHash == "" {
// 生成随机密码
password := generateRandomPassword(12)
hash, err := bcrypt.GenerateFromPassword([]byte(password), bcrypt.DefaultCost)
if err != nil {
log.Fatalf("Failed to generate password hash: %v", err)
}
passwordHash = string(hash)
fmt.Printf("**************************************************\n")
fmt.Printf("NO ADMIN PASSWORD CONFIGURED. GENERATED RANDOM PASSWORD:\n")
fmt.Printf("Password: %s\n", password)
fmt.Printf("Please save this password or configure admin_password_hash in config.yaml\n")
fmt.Printf("**************************************************\n")
passwordHash := config.GlobalConfig.Security.AdminPasswordHash
if passwordHash == "" {
// 生成随机密码
password := generateRandomPassword(12)
hash, err := bcrypt.GenerateFromPassword([]byte(password), bcrypt.DefaultCost)
if err != nil {
log.Fatalf("Failed to generate password hash: %v", err)
}
passwordHash = string(hash)
fmt.Printf("**************************************************\n")
fmt.Printf("NO ADMIN PASSWORD CONFIGURED. GENERATED RANDOM PASSWORD:\n")
fmt.Printf("Password: %s\n", password)
fmt.Printf("Please save this password or configure admin_password_hash in config.yaml\n")
fmt.Printf("**************************************************\n")
admin := &model.Admin{
PasswordHash: passwordHash,
// 将生成的哈希保存回配置文件
config.GlobalConfig.Security.AdminPasswordHash = passwordHash
if err := config.SaveConfig(); err != nil {
fmt.Printf("Warning: Failed to save generated password hash to config: %v\n", err)
}
DB.Create(admin)
fmt.Println("Admin account initialized.")
}
fmt.Println("Admin authentication initialized via config.")
}
func generateRandomPassword(length int) string {