Add a configuration to disable signing up
This commit is contained in:
@@ -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,
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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})
|
||||
}
|
||||
|
||||
@@ -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 {
|
||||
|
||||
Reference in New Issue
Block a user