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