add golang backend for login an d webserver

This commit is contained in:
Adrian Zürcher
2025-05-28 21:48:30 +02:00
parent c8b27813ae
commit 8cfb720c42
15 changed files with 761 additions and 0 deletions

49
backend/login/manager.go Normal file
View File

@@ -0,0 +1,49 @@
package login
import (
"backend/dbRequest"
"backend/utils"
"database/sql"
"fmt"
"os"
)
type LoginManager struct {
dbType string
dbFile string
}
func NewLoginManager(dir string) (*LoginManager, 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", hash)
if err != nil {
return nil, err
}
}
return &LoginManager{
dbType: typ,
dbFile: file,
}, nil
}