add acl service
This commit is contained in:
59
cmd/serve.go
59
cmd/serve.go
@@ -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())
|
||||
|
||||
Reference in New Issue
Block a user