mirror of
https://github.com/laoxong/nofx.git
synced 2026-06-04 09:58:22 +08:00
Feat: Enable admin password in admin mode (#540)
* WIP: save local changes before merging * Enable admin password in admin mode #374
This commit is contained in:
@@ -15,6 +15,8 @@ import (
|
||||
"strconv"
|
||||
"strings"
|
||||
"syscall"
|
||||
|
||||
"github.com/joho/godotenv"
|
||||
)
|
||||
|
||||
// LeverageConfig 杠杆配置
|
||||
@@ -160,6 +162,10 @@ func main() {
|
||||
fmt.Println("╚════════════════════════════════════════════════════════════╝")
|
||||
fmt.Println()
|
||||
|
||||
// Load environment variables from .env file if present (for local/dev runs)
|
||||
// In Docker Compose, variables are injected by the runtime and this is harmless.
|
||||
_ = godotenv.Load()
|
||||
|
||||
// 初始化数据库配置
|
||||
dbPath := "config.db"
|
||||
if len(os.Args) > 1 {
|
||||
@@ -206,17 +212,20 @@ func main() {
|
||||
}
|
||||
auth.SetJWTSecret(jwtSecret)
|
||||
|
||||
// 在管理员模式下,确保admin用户存在
|
||||
// 管理员模式下需要管理员密码,缺失则退出
|
||||
if adminMode {
|
||||
err := database.EnsureAdminUser()
|
||||
if err != nil {
|
||||
log.Printf("⚠️ 创建admin用户失败: %v", err)
|
||||
} else {
|
||||
log.Printf("✓ 管理员模式已启用,无需登录")
|
||||
adminPassword := os.Getenv("NOFX_ADMIN_PASSWORD")
|
||||
if adminPassword == "" {
|
||||
log.Fatalf("Admin mode is enabled but NOFX_ADMIN_PASSWORD is missing. Set NOFX_ADMIN_PASSWORD and restart.")
|
||||
}
|
||||
if err := auth.SetAdminPasswordFromPlain(adminPassword); err != nil {
|
||||
log.Fatalf("Failed to set admin password: %v", err)
|
||||
}
|
||||
auth.SetAdminMode(true)
|
||||
log.Printf("✓ Admin mode enabled. All API endpoints require admin authentication.")
|
||||
}
|
||||
|
||||
|
||||
log.Printf("✓ 配置数据库初始化成功")
|
||||
fmt.Println()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user