add acl service

This commit is contained in:
2025-12-19 14:26:37 +02:00
parent cd465d42a3
commit 07ec64b1bb

View File

@@ -12,6 +12,7 @@ import (
"time"
"git.oblat.lv/alex/triggerssmith/api"
"git.oblat.lv/alex/triggerssmith/internal/acl"
application "git.oblat.lv/alex/triggerssmith/internal/app"
"git.oblat.lv/alex/triggerssmith/internal/auth"
"git.oblat.lv/alex/triggerssmith/internal/config"
@@ -99,10 +100,10 @@ var serveCmd = &cobra.Command{
} else {
defer f.Close()
slog.Debug("flushing stack in to panic.log")
fmt.Fprintln(f, "\n--------------------------------------------------------\n")
fmt.Fprintf(f, "\n--------------------------------------------------------\n")
fmt.Fprintf(f, "Time: %s\n", time.Now().Format(time.RFC3339))
fmt.Fprintln(f, "If this is unexpected, please report: https://git.oblat.lv/alex/triggerssmith/issues")
fmt.Fprintln(f, "\n--------------------------------------------------------\n")
fmt.Fprintf(f, "\n--------------------------------------------------------\n")
fmt.Fprintf(f, "Panic: %v\n", r)
f.Write(stack)
f.WriteString("\n\n")
@@ -179,34 +180,63 @@ var serveCmd = &cobra.Command{
slog.Error("Failed to open token database", slog.String("error", err.Error()))
return
}
err = tokenDb.AutoMigrate(&token.Token{})
if err != nil {
slog.Error("Failed to migrate token database", slog.String("error", err.Error()))
return
}
// err = tokenDb.AutoMigrate(&token.Token{})
// if err != nil {
// slog.Error("Failed to migrate token database", slog.String("error", err.Error()))
// return
// }
tokenStore, err := token.NewSQLiteTokenStore(tokenDb)
if err != nil {
slog.Error("Failed to create token store", slog.String("error", err.Error()))
return
}
tokenService, err := token.NewTokenService(&cfg.Auth, tokenStore)
if err != nil {
slog.Error("Failed to create token service", slog.String("error", err.Error()))
return
}
err = tokenService.Init()
if err != nil {
slog.Error("Failed to initialize token service", slog.String("error", err.Error()))
return
}
userDb, err := gorm.Open(sqlite.Open(filepath.Join(cfg.Data.DataPath, "users.sqlite3")), &gorm.Config{})
// also acl !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
userData, err := gorm.Open(sqlite.Open(filepath.Join(cfg.Data.DataPath, "user_data.sqlite3")), &gorm.Config{})
if err != nil {
slog.Error("Failed to open user database", slog.String("error", err.Error()))
return
}
err = userDb.AutoMigrate(&user.User{})
if err != nil {
slog.Error("Failed to migrate user database", slog.String("error", err.Error()))
return
}
userStore, err := user.NewGormUserStore(userDb)
// err =
// if err != nil {
// slog.Error("Failed to migrate user database", slog.String("error", err.Error()))
// return
// }
userStore, err := user.NewGormUserStore(userData)
if err != nil {
slog.Error("Failed to create user store", slog.String("error", err.Error()))
return
}
userService, err := user.NewService(userStore)
if err != nil {
slog.Error("Failed to create user service", slog.String("error", err.Error()))
return
}
err = userService.Init()
if err != nil {
slog.Error("Failed to initialize user service", slog.String("error", err.Error()))
return
}
aclService, err := acl.NewService(userData)
if err != nil {
slog.Error("Failed to create acl service", slog.String("error", err.Error()))
return
}
err = aclService.Init()
if err != nil {
slog.Error("Failed to initialize acl service", slog.String("error", err.Error()))
return
}
authService, err := auth.NewAuthService(auth.AuthServiceDependencies{
Configuration: cfg,
@@ -223,6 +253,7 @@ var serveCmd = &cobra.Command{
router := api.NewRouter(api.RouterDependencies{
AuthService: authService,
Configuration: cfg,
ACLService: aclService,
})
srv.SetHandler(router.MustRoute())