feature (middleware): use translated errors in auth middleware

This commit is contained in:
Mickael Kerjean 2023-02-28 21:19:50 +11:00
parent fd15e7255a
commit 8059730720
2 changed files with 16 additions and 5 deletions

View file

@ -30,6 +30,17 @@ var (
ErrInternal error = NewError("Internal Error", 500)
)
func IsATranslatedError(err error) bool {
if err == ErrNotFound || err == ErrNotAllowed || err == ErrPermissionDenied ||
err == ErrNotValid || err == ErrInvalidPassword || err == ErrNotImplemented ||
err == ErrNotSupported || err == ErrFilesystemError || err == ErrMissingDependency ||
err == ErrNotAuthorized || err == ErrAuthenticationFailed || err == ErrCongestion ||
err == ErrTimeout || err == ErrInternal {
return true
}
return false
}
type AppError struct {
message string
status int

View file

@ -403,11 +403,11 @@ func SessionAuthMiddleware(ctx *App, res http.ResponseWriter, req *http.Request)
if _, err := model.NewBackend(ctx, session); err != nil {
Log.Debug("session::authMiddleware 'backend connection failed %+v - %s'", session, err.Error())
http.Redirect(
res, req,
"/?error=Not%20Valid&trace=backend error - "+err.Error(),
http.StatusTemporaryRedirect,
)
url := "/?error=" + ErrNotValid.Error() + "&trace=backend error - " + err.Error()
if IsATranslatedError(err) {
url = "/?error=" + err.Error()
}
http.Redirect(res, req, url, http.StatusTemporaryRedirect)
return
}