Files
move-data-nas/internal/auth/seed.go
T
darroyo 5374ab81cc auth: default admin/admin credentials on first install + bump 1.0.4
SeedAdmin now uses 'admin'/'admin' as defaults when environment
variables are not set, so the service works out-of-the-box after
first install.
2026-07-07 20:00:42 -04:00

41 lines
691 B
Go

package auth
import (
"database/sql"
"log/slog"
)
func SeedAdmin(db *sql.DB, username, password string) error {
if username == "" {
username = "admin"
}
if password == "" {
password = "admin"
}
var exists bool
err := db.QueryRow("SELECT EXISTS(SELECT 1 FROM users WHERE username = ?)", username).Scan(&exists)
if err != nil {
return err
}
if exists {
return nil
}
hash, err := HashPassword(password)
if err != nil {
return err
}
_, err = db.Exec(
"INSERT INTO users (username, password_hash, role) VALUES (?, ?, ?)",
username, string(hash), "admin",
)
if err != nil {
return err
}
slog.Info("admin user created", "username", username)
return nil
}