38 lines
832 B
Go
38 lines
832 B
Go
package auth
|
|
|
|
import (
|
|
"log"
|
|
|
|
"trade/web/internal/store"
|
|
)
|
|
|
|
// BootstrapLLMConfig 初始化 llm_config 表。
|
|
func BootstrapLLMConfig(s *store.FuturesStore) error {
|
|
return s.EnsureLLMConfigTable()
|
|
}
|
|
|
|
// Bootstrap 在 auth.db 没有任何 admin 时,写入默认管理员 admin/admin;
|
|
// 并强制首次登录后改密码。已存在 admin 时静默跳过。
|
|
func Bootstrap(s *store.AuthStore) error {
|
|
n, err := s.CountAdmins()
|
|
if err != nil {
|
|
return err
|
|
}
|
|
if n > 0 {
|
|
return nil
|
|
}
|
|
hash, err := HashPassword("admin")
|
|
if err != nil {
|
|
return err
|
|
}
|
|
u, err := s.CreateUser("admin", hash, store.RoleAdmin)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
if err := s.SetForcePasswordChange(u.ID, true); err != nil {
|
|
return err
|
|
}
|
|
log.Printf("[bootstrap] admin created (default password), force password change enabled")
|
|
return nil
|
|
}
|