Commit dccf114f authored by Clayton Coleman's avatar Clayton Coleman

Display a better error on unauthorized

Not being logged in is a common user error, and the message we display can be more specific to an end user. Provide a friendly message with the server message in parethesis (in case this is a more complex server error).
parent a6d9b091
...@@ -171,10 +171,15 @@ func StandardErrorMessage(err error) (string, bool) { ...@@ -171,10 +171,15 @@ func StandardErrorMessage(err error) (string, bool) {
if debugErr, ok := err.(debugError); ok { if debugErr, ok := err.(debugError); ok {
glog.V(4).Infof(debugErr.DebugError()) glog.V(4).Infof(debugErr.DebugError())
} }
_, isStatus := err.(errors.APIStatus) status, isStatus := err.(errors.APIStatus)
switch { switch {
case isStatus: case isStatus:
return fmt.Sprintf("Error from server: %s", err.Error()), true switch s := status.Status(); {
case s.Reason == "Unauthorized":
return fmt.Sprintf("error: You must be logged in to the server (%s)", s.Message), true
default:
return fmt.Sprintf("Error from server: %s", err.Error()), true
}
case errors.IsUnexpectedObjectError(err): case errors.IsUnexpectedObjectError(err):
return fmt.Sprintf("Server returned an unexpected response: %s", err.Error()), true return fmt.Sprintf("Server returned an unexpected response: %s", err.Error()), true
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment