mirror of https://github.com/grafana/grafana.git
				
				
				
			[release-11.4.3] Service Accounts: Do not show error pop-ups for Service Account and Renderer UI flows (#101790)
* Service Accounts: Don't show error pop-ups for Service Account and Renderer UI flows (#101679) don't show error pop-ups for SAs and renderer (cherry picked from commitf0d260ba5b) * Service Accounts: Don't show error pop-ups for Service Account and Renderer UI flows (#101776) * don't show error pop-ups for SAs and renderer * only hide non 4xx error pop'ups * linting (cherry picked from commit392124de00)
This commit is contained in:
		
							parent
							
								
									2b9a49a63e
								
							
						
					
					
						commit
						3d185ab56c
					
				|  | @ -150,7 +150,7 @@ func (hs *HTTPServer) UpdateSignedInUser(c *contextmodel.ReqContext) response.Re | ||||||
| 	cmd.Email = strings.TrimSpace(cmd.Email) | 	cmd.Email = strings.TrimSpace(cmd.Email) | ||||||
| 	cmd.Login = strings.TrimSpace(cmd.Login) | 	cmd.Login = strings.TrimSpace(cmd.Login) | ||||||
| 
 | 
 | ||||||
| 	userID, errResponse := getUserID(c) | 	userID, errResponse := hs.getUserID(c) | ||||||
| 	if errResponse != nil { | 	if errResponse != nil { | ||||||
| 		return errResponse | 		return errResponse | ||||||
| 	} | 	} | ||||||
|  | @ -350,7 +350,7 @@ func (hs *HTTPServer) UpdateUserEmail(c *contextmodel.ReqContext) response.Respo | ||||||
| // 403: forbiddenError
 | // 403: forbiddenError
 | ||||||
| // 500: internalServerError
 | // 500: internalServerError
 | ||||||
| func (hs *HTTPServer) GetSignedInUserOrgList(c *contextmodel.ReqContext) response.Response { | func (hs *HTTPServer) GetSignedInUserOrgList(c *contextmodel.ReqContext) response.Response { | ||||||
| 	userID, errResponse := getUserID(c) | 	userID, errResponse := hs.getUserID(c) | ||||||
| 	if errResponse != nil { | 	if errResponse != nil { | ||||||
| 		return errResponse | 		return errResponse | ||||||
| 	} | 	} | ||||||
|  | @ -370,7 +370,7 @@ func (hs *HTTPServer) GetSignedInUserOrgList(c *contextmodel.ReqContext) respons | ||||||
| // 403: forbiddenError
 | // 403: forbiddenError
 | ||||||
| // 500: internalServerError
 | // 500: internalServerError
 | ||||||
| func (hs *HTTPServer) GetSignedInUserTeamList(c *contextmodel.ReqContext) response.Response { | func (hs *HTTPServer) GetSignedInUserTeamList(c *contextmodel.ReqContext) response.Response { | ||||||
| 	userID, errResponse := getUserID(c) | 	userID, errResponse := hs.getUserID(c) | ||||||
| 	if errResponse != nil { | 	if errResponse != nil { | ||||||
| 		return errResponse | 		return errResponse | ||||||
| 	} | 	} | ||||||
|  | @ -480,7 +480,7 @@ func (hs *HTTPServer) UserSetUsingOrg(c *contextmodel.ReqContext) response.Respo | ||||||
| 		return response.Error(http.StatusBadRequest, "id is invalid", err) | 		return response.Error(http.StatusBadRequest, "id is invalid", err) | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	userID, errResponse := getUserID(c) | 	userID, errResponse := hs.getUserID(c) | ||||||
| 	if errResponse != nil { | 	if errResponse != nil { | ||||||
| 		return errResponse | 		return errResponse | ||||||
| 	} | 	} | ||||||
|  | @ -505,7 +505,8 @@ func (hs *HTTPServer) ChangeActiveOrgAndRedirectToHome(c *contextmodel.ReqContex | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	if !c.SignedInUser.IsIdentityType(claims.TypeUser) { | 	if !c.SignedInUser.IsIdentityType(claims.TypeUser) { | ||||||
| 		c.JsonApiErr(http.StatusForbidden, "Endpoint only available for users", nil) | 		hs.log.Debug("Requested endpoint only available to users") | ||||||
|  | 		c.JsonApiErr(http.StatusNotModified, "Endpoint only available for users", nil) | ||||||
| 		return | 		return | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
|  | @ -549,7 +550,7 @@ func (hs *HTTPServer) ChangeUserPassword(c *contextmodel.ReqContext) response.Re | ||||||
| 		return response.Error(http.StatusBadRequest, "bad request data", err) | 		return response.Error(http.StatusBadRequest, "bad request data", err) | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	userID, errResponse := getUserID(c) | 	userID, errResponse := hs.getUserID(c) | ||||||
| 	if errResponse != nil { | 	if errResponse != nil { | ||||||
| 		return errResponse | 		return errResponse | ||||||
| 	} | 	} | ||||||
|  | @ -585,7 +586,7 @@ func (hs *HTTPServer) SetHelpFlag(c *contextmodel.ReqContext) response.Response | ||||||
| 		return response.Error(http.StatusBadRequest, "id is invalid", err) | 		return response.Error(http.StatusBadRequest, "id is invalid", err) | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	userID, errResponse := getUserID(c) | 	userID, errResponse := hs.getUserID(c) | ||||||
| 	if errResponse != nil { | 	if errResponse != nil { | ||||||
| 		return errResponse | 		return errResponse | ||||||
| 	} | 	} | ||||||
|  | @ -615,7 +616,7 @@ func (hs *HTTPServer) SetHelpFlag(c *contextmodel.ReqContext) response.Response | ||||||
| // 403: forbiddenError
 | // 403: forbiddenError
 | ||||||
| // 500: internalServerError
 | // 500: internalServerError
 | ||||||
| func (hs *HTTPServer) ClearHelpFlags(c *contextmodel.ReqContext) response.Response { | func (hs *HTTPServer) ClearHelpFlags(c *contextmodel.ReqContext) response.Response { | ||||||
| 	userID, errResponse := getUserID(c) | 	userID, errResponse := hs.getUserID(c) | ||||||
| 	if errResponse != nil { | 	if errResponse != nil { | ||||||
| 		return errResponse | 		return errResponse | ||||||
| 	} | 	} | ||||||
|  | @ -628,9 +629,10 @@ func (hs *HTTPServer) ClearHelpFlags(c *contextmodel.ReqContext) response.Respon | ||||||
| 	return response.JSON(http.StatusOK, &util.DynMap{"message": "Help flag set", "helpFlags1": flags}) | 	return response.JSON(http.StatusOK, &util.DynMap{"message": "Help flag set", "helpFlags1": flags}) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func getUserID(c *contextmodel.ReqContext) (int64, *response.NormalResponse) { | func (hs *HTTPServer) getUserID(c *contextmodel.ReqContext) (int64, *response.NormalResponse) { | ||||||
| 	if !c.SignedInUser.IsIdentityType(claims.TypeUser) { | 	if !c.SignedInUser.IsIdentityType(claims.TypeUser) { | ||||||
| 		return 0, response.Error(http.StatusForbidden, "Endpoint only available for users", nil) | 		hs.log.Debug("Requested endpoint only available to users") | ||||||
|  | 		return 0, response.Error(http.StatusNotModified, "Endpoint only available for users", nil) | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	userID, err := c.SignedInUser.GetInternalID() | 	userID, err := c.SignedInUser.GetInternalID() | ||||||
|  |  | ||||||
|  | @ -269,6 +269,16 @@ export class BackendSrv implements BackendService { | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|   showErrorAlert(config: BackendSrvRequest, err: FetchError) { |   showErrorAlert(config: BackendSrvRequest, err: FetchError) { | ||||||
|  |     // do not show non-user error alerts for api keys or render tokens, they are used for kiosk mode and reporting and can't react to error pop-ups
 | ||||||
|  |     if ( | ||||||
|  |       (err.status < 400 || err.status >= 500) && | ||||||
|  |       this.dependencies.contextSrv.isSignedIn && | ||||||
|  |       (this.dependencies.contextSrv.user.authenticatedBy === 'apikey' || | ||||||
|  |         this.dependencies.contextSrv.user.authenticatedBy === 'render') | ||||||
|  |     ) { | ||||||
|  |       return; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|     if (config.showErrorAlert === false) { |     if (config.showErrorAlert === false) { | ||||||
|       return; |       return; | ||||||
|     } |     } | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue