Add a configuration to disable signing up

This commit is contained in:
2026-02-23 17:59:13 +01:00
parent eba6a279eb
commit 0702a2b0cb
3 changed files with 28 additions and 15 deletions

View File

@@ -18,6 +18,7 @@ type Config struct {
ImageFolderPath string `toml:"image-folder-path" default:"img" comment:"Folder where uploaded files will be stored."`
Limit int `toml:"limit" default:"100" comment:"A single API call will return at most this number of records."`
InventaireUrl string `toml:"inventaire-url" default:"https://inventaire.io" comment:"An inventaire.io instance URL."`
DisableRegistration bool `toml:"disable-registration" default:"false" comment:"Disable new account creation."`
}
func defaultConfig() Config {
@@ -29,6 +30,7 @@ func defaultConfig() Config {
ImageFolderPath: "img",
Limit: 100,
InventaireUrl: "https://inventaire.io",
DisableRegistration: false,
}
}

View File

@@ -46,7 +46,7 @@ func ReturnErrorsAsJsonResponse(ac *appcontext.AppContext, err error) {
if errors.As(err, &ve) {
ac.C.JSON(http.StatusBadRequest, getValidationErrors(ac, &ve))
} else if errors.As(err, &httpError) {
ac.C.JSON(httpError.StatusCode, gin.H{"error": httpError.Err})
ac.C.JSON(httpError.StatusCode, gin.H{"error": httpError.Err.Error()})
} else {
ac.C.JSON(http.StatusInternalServerError, gin.H{"error": err})
}

View File

@@ -1,6 +1,9 @@
package routes
import (
"errors"
"net/http"
"git.artlef.fr/PersonalLibraryManager/internal/appcontext"
"git.artlef.fr/PersonalLibraryManager/internal/dto"
"git.artlef.fr/PersonalLibraryManager/internal/model"
@@ -9,6 +12,14 @@ import (
)
func PostSignupHandler(ac appcontext.AppContext) {
if ac.Config.DisableRegistration {
myvalidator.ReturnErrorsAsJsonResponse(&ac,
myvalidator.HttpError{
StatusCode: http.StatusForbidden,
Err: errors.New("Registration has been disabled on this instance."),
})
return
}
var user dto.UserSignup
err := ac.C.ShouldBindJSON(&user)
if err != nil {