1
0
mirror of https://github.com/mattermost/focalboard.git synced 2025-07-15 23:54:29 +02:00

Fix nil stringer error (#788)

* fix nil stringer error
* include API path with all API ERROR logs
* enable "caller" field
* disable colour output and min msg length for plugin
* bump Logr version to v2.0.4
This commit is contained in:
Doug Lauder
2021-07-27 12:57:29 -04:00
committed by GitHub
parent a98bcb98ff
commit efedf2f481
9 changed files with 99 additions and 91 deletions

View File

@ -159,20 +159,20 @@ func (a *API) handleLogin(w http.ResponseWriter, r *http.Request) {
if len(a.singleUserToken) > 0 {
// Not permitted in single-user mode
a.errorResponse(w, http.StatusUnauthorized, "", nil)
a.errorResponse(w, r.URL.Path, http.StatusUnauthorized, "not permitted in single-user mode", nil)
return
}
requestBody, err := ioutil.ReadAll(r.Body)
if err != nil {
a.errorResponse(w, http.StatusInternalServerError, "", err)
a.errorResponse(w, r.URL.Path, http.StatusInternalServerError, "", err)
return
}
var loginData LoginRequest
err = json.Unmarshal(requestBody, &loginData)
if err != nil {
a.errorResponse(w, http.StatusInternalServerError, "", err)
a.errorResponse(w, r.URL.Path, http.StatusInternalServerError, "", err)
return
}
@ -184,12 +184,12 @@ func (a *API) handleLogin(w http.ResponseWriter, r *http.Request) {
if loginData.Type == "normal" {
token, err := a.app.Login(loginData.Username, loginData.Email, loginData.Password, loginData.MfaToken)
if err != nil {
a.errorResponse(w, http.StatusUnauthorized, "incorrect login", err)
a.errorResponse(w, r.URL.Path, http.StatusUnauthorized, "incorrect login", err)
return
}
json, err := json.Marshal(LoginResponse{Token: token})
if err != nil {
a.errorResponse(w, http.StatusInternalServerError, "", err)
a.errorResponse(w, r.URL.Path, http.StatusInternalServerError, "", err)
return
}
@ -198,7 +198,7 @@ func (a *API) handleLogin(w http.ResponseWriter, r *http.Request) {
return
}
a.errorResponse(w, http.StatusBadRequest, "invalid login type", nil)
a.errorResponse(w, r.URL.Path, http.StatusBadRequest, "invalid login type", nil)
}
func (a *API) handleRegister(w http.ResponseWriter, r *http.Request) {
@ -228,20 +228,20 @@ func (a *API) handleRegister(w http.ResponseWriter, r *http.Request) {
if len(a.singleUserToken) > 0 {
// Not permitted in single-user mode
a.errorResponse(w, http.StatusUnauthorized, "", nil)
a.errorResponse(w, r.URL.Path, http.StatusUnauthorized, "not permitted in single-user mode", nil)
return
}
requestBody, err := ioutil.ReadAll(r.Body)
if err != nil {
a.errorResponse(w, http.StatusInternalServerError, "", err)
a.errorResponse(w, r.URL.Path, http.StatusInternalServerError, "", err)
return
}
var registerData RegisterRequest
err = json.Unmarshal(requestBody, &registerData)
if err != nil {
a.errorResponse(w, http.StatusInternalServerError, "", err)
a.errorResponse(w, r.URL.Path, http.StatusInternalServerError, "", err)
return
}
@ -249,29 +249,29 @@ func (a *API) handleRegister(w http.ResponseWriter, r *http.Request) {
if len(registerData.Token) > 0 {
workspace, err2 := a.app.GetRootWorkspace()
if err2 != nil {
a.errorResponse(w, http.StatusInternalServerError, "", err2)
a.errorResponse(w, r.URL.Path, http.StatusInternalServerError, "", err2)
return
}
if registerData.Token != workspace.SignupToken {
a.errorResponse(w, http.StatusUnauthorized, "", nil)
a.errorResponse(w, r.URL.Path, http.StatusUnauthorized, "invalid token", nil)
return
}
} else {
// No signup token, check if no active users
userCount, err2 := a.app.GetRegisteredUserCount()
if err2 != nil {
a.errorResponse(w, http.StatusInternalServerError, "", err2)
a.errorResponse(w, r.URL.Path, http.StatusInternalServerError, "", err2)
return
}
if userCount > 0 {
a.errorResponse(w, http.StatusUnauthorized, "", nil)
a.errorResponse(w, r.URL.Path, http.StatusUnauthorized, "no sign-up token and user(s) already exist", nil)
return
}
}
if err = registerData.IsValid(); err != nil {
a.errorResponse(w, http.StatusBadRequest, err.Error(), err)
a.errorResponse(w, r.URL.Path, http.StatusBadRequest, err.Error(), err)
return
}
@ -281,7 +281,7 @@ func (a *API) handleRegister(w http.ResponseWriter, r *http.Request) {
err = a.app.RegisterUser(registerData.Username, registerData.Email, registerData.Password)
if err != nil {
a.errorResponse(w, http.StatusBadRequest, err.Error(), err)
a.errorResponse(w, r.URL.Path, http.StatusBadRequest, err.Error(), err)
return
}
@ -325,7 +325,7 @@ func (a *API) handleChangePassword(w http.ResponseWriter, r *http.Request) {
if len(a.singleUserToken) > 0 {
// Not permitted in single-user mode
a.errorResponse(w, http.StatusUnauthorized, "", nil)
a.errorResponse(w, r.URL.Path, http.StatusUnauthorized, "not permitted in single-user mode", nil)
return
}
@ -334,18 +334,18 @@ func (a *API) handleChangePassword(w http.ResponseWriter, r *http.Request) {
requestBody, err := ioutil.ReadAll(r.Body)
if err != nil {
a.errorResponse(w, http.StatusInternalServerError, "", err)
a.errorResponse(w, r.URL.Path, http.StatusInternalServerError, "", err)
return
}
var requestData ChangePasswordRequest
if err = json.Unmarshal(requestBody, &requestData); err != nil {
a.errorResponse(w, http.StatusInternalServerError, "", err)
a.errorResponse(w, r.URL.Path, http.StatusInternalServerError, "", err)
return
}
if err = requestData.IsValid(); err != nil {
a.errorResponse(w, http.StatusBadRequest, err.Error(), err)
a.errorResponse(w, r.URL.Path, http.StatusBadRequest, err.Error(), err)
return
}
@ -353,7 +353,7 @@ func (a *API) handleChangePassword(w http.ResponseWriter, r *http.Request) {
defer a.audit.LogRecord(audit.LevelAuth, auditRec)
if err = a.app.ChangePassword(userID, requestData.OldPassword, requestData.NewPassword); err != nil {
a.errorResponse(w, http.StatusBadRequest, err.Error(), err)
a.errorResponse(w, r.URL.Path, http.StatusBadRequest, err.Error(), err)
return
}
@ -372,7 +372,7 @@ func (a *API) attachSession(handler func(w http.ResponseWriter, r *http.Request)
a.logger.Debug(`attachSession`, mlog.Bool("single_user", len(a.singleUserToken) > 0))
if len(a.singleUserToken) > 0 {
if required && (token != a.singleUserToken) {
a.errorResponse(w, http.StatusUnauthorized, "", nil)
a.errorResponse(w, r.URL.Path, http.StatusUnauthorized, "invalid single user token", nil)
return
}
@ -411,7 +411,7 @@ func (a *API) attachSession(handler func(w http.ResponseWriter, r *http.Request)
session, err := a.app.GetSession(token)
if err != nil {
if required {
a.errorResponse(w, http.StatusUnauthorized, "", err)
a.errorResponse(w, r.URL.Path, http.StatusUnauthorized, "", err)
return
}
@ -426,7 +426,7 @@ func (a *API) attachSession(handler func(w http.ResponseWriter, r *http.Request)
mlog.String("want", a.authService),
mlog.String("got", authService),
)
a.errorResponse(w, http.StatusUnauthorized, "", err)
a.errorResponse(w, r.URL.Path, http.StatusUnauthorized, "", err)
return
}
@ -440,7 +440,7 @@ func (a *API) adminRequired(handler func(w http.ResponseWriter, r *http.Request)
// Currently, admin APIs require local unix connections
conn := GetContextConn(r)
if _, isUnix := conn.(*net.UnixConn); !isUnix {
a.errorResponse(w, http.StatusUnauthorized, "", nil)
a.errorResponse(w, r.URL.Path, http.StatusUnauthorized, "not a local unix connection", nil)
return
}