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" "time"
"git.oblat.lv/alex/triggerssmith/api" "git.oblat.lv/alex/triggerssmith/api"
"git.oblat.lv/alex/triggerssmith/internal/acl"
application "git.oblat.lv/alex/triggerssmith/internal/app" application "git.oblat.lv/alex/triggerssmith/internal/app"
"git.oblat.lv/alex/triggerssmith/internal/auth" "git.oblat.lv/alex/triggerssmith/internal/auth"
"git.oblat.lv/alex/triggerssmith/internal/config" "git.oblat.lv/alex/triggerssmith/internal/config"
@@ -99,10 +100,10 @@ var serveCmd = &cobra.Command{
} else { } else {
defer f.Close() defer f.Close()
slog.Debug("flushing stack in to panic.log") 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.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, "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) fmt.Fprintf(f, "Panic: %v\n", r)
f.Write(stack) f.Write(stack)
f.WriteString("\n\n") f.WriteString("\n\n")
@@ -179,34 +180,63 @@ var serveCmd = &cobra.Command{
slog.Error("Failed to open token database", slog.String("error", err.Error())) slog.Error("Failed to open token database", slog.String("error", err.Error()))
return return
} }
err = tokenDb.AutoMigrate(&token.Token{}) // err = tokenDb.AutoMigrate(&token.Token{})
if err != nil { // if err != nil {
slog.Error("Failed to migrate token database", slog.String("error", err.Error())) // slog.Error("Failed to migrate token database", slog.String("error", err.Error()))
return // return
} // }
tokenStore, err := token.NewSQLiteTokenStore(tokenDb) tokenStore, err := token.NewSQLiteTokenStore(tokenDb)
if err != nil { if err != nil {
slog.Error("Failed to create token store", slog.String("error", err.Error())) slog.Error("Failed to create token store", slog.String("error", err.Error()))
return return
} }
tokenService, err := token.NewTokenService(&cfg.Auth, tokenStore) 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 { if err != nil {
slog.Error("Failed to open user database", slog.String("error", err.Error())) slog.Error("Failed to open user database", slog.String("error", err.Error()))
return return
} }
err = userDb.AutoMigrate(&user.User{}) // err =
if err != nil { // if err != nil {
slog.Error("Failed to migrate user database", slog.String("error", err.Error())) // slog.Error("Failed to migrate user database", slog.String("error", err.Error()))
return // return
} // }
userStore, err := user.NewGormUserStore(userDb) userStore, err := user.NewGormUserStore(userData)
if err != nil { if err != nil {
slog.Error("Failed to create user store", slog.String("error", err.Error())) slog.Error("Failed to create user store", slog.String("error", err.Error()))
return return
} }
userService, err := user.NewService(userStore) 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{ authService, err := auth.NewAuthService(auth.AuthServiceDependencies{
Configuration: cfg, Configuration: cfg,
@@ -223,6 +253,7 @@ var serveCmd = &cobra.Command{
router := api.NewRouter(api.RouterDependencies{ router := api.NewRouter(api.RouterDependencies{
AuthService: authService, AuthService: authService,
Configuration: cfg, Configuration: cfg,
ACLService: aclService,
}) })
srv.SetHandler(router.MustRoute()) srv.SetHandler(router.MustRoute())