50 lines
804 B
Go
50 lines
804 B
Go
package user
|
|
|
|
import (
|
|
"backend/dbRequest"
|
|
"backend/utils"
|
|
"database/sql"
|
|
"fmt"
|
|
"os"
|
|
)
|
|
|
|
type UserManager struct {
|
|
dbType string
|
|
dbFile string
|
|
}
|
|
|
|
func NewUserManager(dir string) (*UserManager, error) {
|
|
if dir == "" {
|
|
dir = "."
|
|
}
|
|
|
|
var typ string = "sqlite"
|
|
var file string = fmt.Sprintf("%s/user.db", dir)
|
|
|
|
if _, err := os.Stat(file); err != nil {
|
|
db, err := sql.Open(typ, file)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
defer db.Close()
|
|
|
|
_, err = db.Exec(dbRequest.DBCreate)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
hash, err := utils.HashPassword("tecamino@2025")
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
_, err = db.Exec(dbRequest.DBNewUser, "admin", "admin", hash, "{}")
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
}
|
|
return &UserManager{
|
|
dbType: typ,
|
|
dbFile: file,
|
|
}, nil
|
|
}
|