add env init
This commit is contained in:
parent
8736847912
commit
9ec789f4bb
4 changed files with 259 additions and 3 deletions
34
user/init.go
34
user/init.go
|
|
@ -3,6 +3,7 @@ package user
|
|||
import (
|
||||
"caddydash/db"
|
||||
"fmt"
|
||||
"os"
|
||||
|
||||
"golang.org/x/crypto/bcrypt"
|
||||
)
|
||||
|
|
@ -50,3 +51,36 @@ func InitAdminUserStatus(cdb *db.ConfigDB) error {
|
|||
return nil
|
||||
}
|
||||
}
|
||||
|
||||
func InitFormEnv(cdb *db.ConfigDB) error {
|
||||
username := os.Getenv("CADDYDASH_USERNAME")
|
||||
password := os.Getenv("CADDYDASH_PASSWORD")
|
||||
|
||||
if username != "" && password != "" {
|
||||
// 检查是否已经有用户
|
||||
hasUser, err := cdb.HasAnyUser()
|
||||
if err != nil {
|
||||
return fmt.Errorf("failed to check if any user exists: %w", err)
|
||||
}
|
||||
if hasUser {
|
||||
// 如果已经有用户,则不执行初始化,但设置状态为已初始化
|
||||
userStatus.SetInitialized(true)
|
||||
return nil
|
||||
}
|
||||
|
||||
// 执行初始化
|
||||
hashedPassword, err := hashPassword(password)
|
||||
if err != nil {
|
||||
return fmt.Errorf("failed to hash password from env: %w", err)
|
||||
}
|
||||
err = cdb.AddUser(username, hashedPassword)
|
||||
if err != nil {
|
||||
return fmt.Errorf("failed to add admin user from env: %w", err)
|
||||
}
|
||||
userStatus.SetInitialized(true)
|
||||
return nil
|
||||
}
|
||||
|
||||
// 如果环境变量不存在,则根据数据库状态设置初始化状态
|
||||
return InitAdminUserStatus(cdb)
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue