IAM - Fix error messages for resource permissions endpoints (#85773)
* IAM: fix many error messages in access-related code to provide more information * Remove debug statement * Refactor resourcepermissions package to use errutil * Replace a few more errors with errutil and wrap errors found in users and teams services * Apply diff of openAPI spec
This commit is contained in:
@@ -144,7 +144,7 @@ func (a *api) getPermissions(c *contextmodel.ReqContext) response.Response {
|
||||
|
||||
permissions, err := a.service.GetPermissions(c.Req.Context(), c.SignedInUser, resourceID)
|
||||
if err != nil {
|
||||
return response.ErrOrFallback(http.StatusInternalServerError, "failed to get permissions", err)
|
||||
return response.ErrOrFallback(http.StatusInternalServerError, "Failed to get permissions", err)
|
||||
}
|
||||
|
||||
if a.service.options.Assignments.BuiltInRoles && !a.service.license.FeatureEnabled("accesscontrol.enforcement") {
|
||||
@@ -229,7 +229,7 @@ type SetResourcePermissionsForUserParams struct {
|
||||
func (a *api) setUserPermission(c *contextmodel.ReqContext) response.Response {
|
||||
userID, err := strconv.ParseInt(web.Params(c.Req)[":userID"], 10, 64)
|
||||
if err != nil {
|
||||
return response.Error(http.StatusBadRequest, "userID is invalid", err)
|
||||
return response.Err(ErrInvalidParam.Build(ErrInvalidParamData("userID", err)))
|
||||
}
|
||||
resourceID := web.Params(c.Req)[":resourceID"]
|
||||
|
||||
@@ -240,7 +240,7 @@ func (a *api) setUserPermission(c *contextmodel.ReqContext) response.Response {
|
||||
|
||||
_, err = a.service.SetUserPermission(c.Req.Context(), c.SignedInUser.GetOrgID(), accesscontrol.User{ID: userID}, resourceID, cmd.Permission)
|
||||
if err != nil {
|
||||
return response.ErrOrFallback(http.StatusBadRequest, "failed to set user permission", err)
|
||||
return response.Err(err)
|
||||
}
|
||||
|
||||
return permissionSetResponse(cmd)
|
||||
@@ -282,7 +282,7 @@ type SetResourcePermissionsForTeamParams struct {
|
||||
func (a *api) setTeamPermission(c *contextmodel.ReqContext) response.Response {
|
||||
teamID, err := strconv.ParseInt(web.Params(c.Req)[":teamID"], 10, 64)
|
||||
if err != nil {
|
||||
return response.Error(http.StatusBadRequest, "teamID is invalid", err)
|
||||
return response.Err(ErrInvalidParam.Build(ErrInvalidParamData("teamID", err)))
|
||||
}
|
||||
resourceID := web.Params(c.Req)[":resourceID"]
|
||||
|
||||
@@ -293,7 +293,7 @@ func (a *api) setTeamPermission(c *contextmodel.ReqContext) response.Response {
|
||||
|
||||
_, err = a.service.SetTeamPermission(c.Req.Context(), c.SignedInUser.GetOrgID(), teamID, resourceID, cmd.Permission)
|
||||
if err != nil {
|
||||
return response.ErrOrFallback(http.StatusBadRequest, "failed to set team permission", err)
|
||||
return response.Err(err)
|
||||
}
|
||||
|
||||
return permissionSetResponse(cmd)
|
||||
@@ -343,7 +343,7 @@ func (a *api) setBuiltinRolePermission(c *contextmodel.ReqContext) response.Resp
|
||||
|
||||
_, err := a.service.SetBuiltInRolePermission(c.Req.Context(), c.SignedInUser.GetOrgID(), builtInRole, resourceID, cmd.Permission)
|
||||
if err != nil {
|
||||
return response.ErrOrFallback(http.StatusBadRequest, "failed to set role permission", err)
|
||||
return response.Err(err)
|
||||
}
|
||||
|
||||
return permissionSetResponse(cmd)
|
||||
@@ -383,12 +383,12 @@ func (a *api) setPermissions(c *contextmodel.ReqContext) response.Response {
|
||||
|
||||
cmd := setPermissionsCommand{}
|
||||
if err := web.Bind(c.Req, &cmd); err != nil {
|
||||
return response.Error(http.StatusBadRequest, "bad request data", err)
|
||||
return response.Error(http.StatusBadRequest, "Bad request data: "+err.Error(), err)
|
||||
}
|
||||
|
||||
_, err := a.service.SetPermissions(c.Req.Context(), c.SignedInUser.GetOrgID(), resourceID, cmd.Permissions...)
|
||||
if err != nil {
|
||||
return response.ErrOrFallback(http.StatusBadRequest, "failed to set permission", err)
|
||||
return response.Err(err)
|
||||
}
|
||||
|
||||
return response.Success("Permissions updated")
|
||||
|
||||
Reference in New Issue
Block a user