goipam/db/setup.go

45 lines
930 B
Go
Raw Normal View History

2024-02-22 10:18:59 +01:00
package db
import (
"log"
"gorm.io/gorm"
"git.jmbit.de/jmb/goipam/utils"
)
// SetupDB checks if database has already been initialized and users exist, otherwise creates default users
func SetupDB() {
ConnectDB()
var users []User
var count int64
conn.Find(&users).Count(&count)
if count >= 1 {
return
}
adminPW, err := utils.RandomString(32)
if err != nil {
log.Fatalf("Could not generate admin PW: %v", err)
} else {
log.Println("Admin PW is:", adminPW)
}
adminPWHash, err := utils.RandomString(32)
if err != nil {
log.Fatalf("Could not generate admin PW: %v", err)
} else {
log.Println("Hashed Admin PW", adminPWHash)
}
adminUser := User{
Model: gorm.Model{},
Name: "admin",
PassHash: adminPWHash,
Email: "admin@example.com",
DisplayName: "Administrator",
Admin: true,
}
result := conn.Create(&adminUser)
if result.Error != nil {
log.Println(err)
}
}