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."`
|
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."`
|
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."`
|
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 {
|
func defaultConfig() Config {
|
||||||
@@ -29,6 +30,7 @@ func defaultConfig() Config {
|
|||||||
ImageFolderPath: "img",
|
ImageFolderPath: "img",
|
||||||
Limit: 100,
|
Limit: 100,
|
||||||
InventaireUrl: "https://inventaire.io",
|
InventaireUrl: "https://inventaire.io",
|
||||||
|
DisableRegistration: false,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -46,7 +46,7 @@ func ReturnErrorsAsJsonResponse(ac *appcontext.AppContext, err error) {
|
|||||||
if errors.As(err, &ve) {
|
if errors.As(err, &ve) {
|
||||||
ac.C.JSON(http.StatusBadRequest, getValidationErrors(ac, &ve))
|
ac.C.JSON(http.StatusBadRequest, getValidationErrors(ac, &ve))
|
||||||
} else if errors.As(err, &httpError) {
|
} 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 {
|
} else {
|
||||||
ac.C.JSON(http.StatusInternalServerError, gin.H{"error": err})
|
ac.C.JSON(http.StatusInternalServerError, gin.H{"error": err})
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,9 @@
|
|||||||
package routes
|
package routes
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"errors"
|
||||||
|
"net/http"
|
||||||
|
|
||||||
"git.artlef.fr/PersonalLibraryManager/internal/appcontext"
|
"git.artlef.fr/PersonalLibraryManager/internal/appcontext"
|
||||||
"git.artlef.fr/PersonalLibraryManager/internal/dto"
|
"git.artlef.fr/PersonalLibraryManager/internal/dto"
|
||||||
"git.artlef.fr/PersonalLibraryManager/internal/model"
|
"git.artlef.fr/PersonalLibraryManager/internal/model"
|
||||||
@@ -9,6 +12,14 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
func PostSignupHandler(ac appcontext.AppContext) {
|
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
|
var user dto.UserSignup
|
||||||
err := ac.C.ShouldBindJSON(&user)
|
err := ac.C.ShouldBindJSON(&user)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|||||||
Reference in New Issue
Block a user