filegate/db/setup.go

43 lines
935 B
Go

package db
import (
"git.jmbit.de/filegate/filegate/utils"
"gorm.io/gorm"
"log"
)
// 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)
}
}