Add git servers

This commit is contained in:
2026-05-02 19:08:02 +02:00
parent 86132bdc8d
commit a68368df3c
15 changed files with 757 additions and 29 deletions
+22 -12
View File
@@ -11,6 +11,7 @@ import (
"quay/internal/config"
"quay/internal/database"
"quay/internal/envconfig"
"quay/internal/security"
"github.com/gofiber/fiber/v3"
)
@@ -21,6 +22,26 @@ func Register(app *fiber.App, cfg *config.Config, envCfg *envconfig.EnvConfig, d
userRepository := database.NewSQLiteUserRepository(db)
gitServerRepository := database.NewSQLiteGitServerRepository(db)
if uList, err := userRepository.GetAllUsers(); err != nil {
log.Printf("Warning checking users: %v", err)
} else if len(uList) == 0 {
pwd := "admin"
hashedPassword, err := security.HashPassword(pwd)
if err != nil {
log.Println("Error hashing default user password: ", err)
}
defaultUser := models.User{
Name: "admin",
HashedPassword: hashedPassword,
Role: "admin",
}
if err := userRepository.CreateUser(&defaultUser); err != nil {
log.Printf("Warning creating default user: %v", err)
} else {
log.Printf("Created default user: admin/admin")
}
}
siteHandler := handlers.NewSiteHandler(siteRepository)
deploySiteHandler := handlers.NewDeploySiteHandler(envCfg, siteRepository, deploymentRepository)
userHandler := handlers.NewUserHandler(userRepository)
@@ -85,18 +106,7 @@ func Register(app *fiber.App, cfg *config.Config, envCfg *envconfig.EnvConfig, d
protected.Get("/users/:id", userHandler.GetUserById)
protected.Get("/users/by-name/:name", userHandler.GetUserByName)
protected.Get("/me", userHandler.GetMe)
// Allow creating the very first admin user without auth (bootstrap).
// If an admin already exists, require auth to create users.
if exists, err := userRepository.AdminUserExists(); err != nil {
// if we can't determine, be conservative and require auth
protected.Post("/users", userHandler.CreateUser)
} else if !exists {
public.Post("/users", userHandler.CreateUser)
} else {
protected.Post("/users", userHandler.CreateUser)
}
protected.Post("/users", userHandler.CreateUser)
protected.Put("/users/:id", userHandler.UpdateUser)
protected.Delete("/users/:id", userHandler.DeleteUser)