Demo mode: automatically connect as demo user
This commit is contained in:
@@ -8,5 +8,8 @@ import (
|
||||
)
|
||||
|
||||
func GetAppInfo(ac appcontext.AppContext) {
|
||||
ac.C.JSON(http.StatusOK, dto.AppInfo{RegistrationDisabled: ac.Config.DisableRegistration})
|
||||
ac.C.JSON(http.StatusOK, dto.AppInfo{
|
||||
RegistrationDisabled: ac.Config.DisableRegistration,
|
||||
DemoMode: ac.Config.DemoMode,
|
||||
})
|
||||
}
|
||||
|
||||
@@ -16,21 +16,29 @@ import (
|
||||
)
|
||||
|
||||
func PostLoginHandler(ac appcontext.AppContext) {
|
||||
var user dto.UserLogin
|
||||
err := ac.C.ShouldBindJSON(&user)
|
||||
if err != nil {
|
||||
myvalidator.ReturnErrorsAsJsonResponse(&ac, err)
|
||||
return
|
||||
}
|
||||
|
||||
if !isUserAndPasswordOk(ac.Db, user.Username, user.Password) {
|
||||
ac.C.JSON(http.StatusUnauthorized,
|
||||
gin.H{"error": i18nresource.GetTranslatedMessage(&ac, "InvalidCredentials")})
|
||||
return
|
||||
var username string
|
||||
|
||||
if !ac.Config.DemoMode {
|
||||
var user dto.UserLogin
|
||||
err := ac.C.ShouldBindJSON(&user)
|
||||
if err != nil {
|
||||
myvalidator.ReturnErrorsAsJsonResponse(&ac, err)
|
||||
return
|
||||
}
|
||||
|
||||
if !ac.Config.DemoMode && !isUserAndPasswordOk(ac.Db, user.Username, user.Password) {
|
||||
ac.C.JSON(http.StatusUnauthorized,
|
||||
gin.H{"error": i18nresource.GetTranslatedMessage(&ac, "InvalidCredentials")})
|
||||
return
|
||||
}
|
||||
username = user.Username
|
||||
} else {
|
||||
username = "demo"
|
||||
}
|
||||
|
||||
var jwtToken string
|
||||
jwtToken, err = jwtauth.GenerateJwtToken(user.Username)
|
||||
jwtToken, err := jwtauth.GenerateJwtToken(username)
|
||||
if err != nil {
|
||||
ac.C.JSON(http.StatusUnauthorized,
|
||||
gin.H{"error": fmt.Errorf("Error when generating JWT token: %w", err)})
|
||||
|
||||
Reference in New Issue
Block a user