From e9bb3b4d73f9abb27f7d219de43328b0c19b279d Mon Sep 17 00:00:00 2001 From: Karl Persson Date: Wed, 14 Aug 2024 16:07:15 +0200 Subject: [PATCH] Annotations: only set userID if caller is a user or service account (#91898) * Ignore errors when extracting current user id * Only set userID if caller is user or service account * Fix patch api --- pkg/api/annotations.go | 29 +++++------------------------ 1 file changed, 5 insertions(+), 24 deletions(-) diff --git a/pkg/api/annotations.go b/pkg/api/annotations.go index ef32c764e5a..d972a14b804 100644 --- a/pkg/api/annotations.go +++ b/pkg/api/annotations.go @@ -9,6 +9,7 @@ import ( "github.com/grafana/grafana/pkg/api/dtos" "github.com/grafana/grafana/pkg/api/response" + "github.com/grafana/grafana/pkg/apimachinery/identity" "github.com/grafana/grafana/pkg/services/accesscontrol" "github.com/grafana/grafana/pkg/services/annotations" contextmodel "github.com/grafana/grafana/pkg/services/contexthandler/model" @@ -140,12 +141,7 @@ func (hs *HTTPServer) PostAnnotation(c *contextmodel.ReqContext) response.Respon return response.Error(http.StatusBadRequest, "Failed to save annotation", err) } - // nolint:staticcheck - userID, err := c.SignedInUser.GetInternalID() - if err != nil { - return response.Error(http.StatusInternalServerError, "Failed to save annotation", err) - } - + userID, _ := identity.UserIdentifier(c.GetID()) item := annotations.Item{ OrgID: c.SignedInUser.GetOrgID(), UserID: userID, @@ -228,12 +224,7 @@ func (hs *HTTPServer) PostGraphiteAnnotation(c *contextmodel.ReqContext) respons return response.Error(http.StatusBadRequest, "Failed to save Graphite annotation", err) } - // nolint:staticcheck - userID, err := c.SignedInUser.GetInternalID() - if err != nil { - return response.Error(http.StatusInternalServerError, "Failed to save Graphite annotation", err) - } - + userID, _ := identity.UserIdentifier(c.GetID()) item := annotations.Item{ OrgID: c.SignedInUser.GetOrgID(), UserID: userID, @@ -286,12 +277,7 @@ func (hs *HTTPServer) UpdateAnnotation(c *contextmodel.ReqContext) response.Resp } } - // nolint:staticcheck - userID, err := c.SignedInUser.GetInternalID() - if err != nil { - return response.Error(http.StatusInternalServerError, "Failed to update annotation", err) - } - + userID, _ := identity.UserIdentifier(c.GetID()) item := annotations.Item{ OrgID: c.SignedInUser.GetOrgID(), UserID: userID, @@ -349,12 +335,7 @@ func (hs *HTTPServer) PatchAnnotation(c *contextmodel.ReqContext) response.Respo } } - // nolint:staticcheck - userID, err := c.SignedInUser.GetInternalID() - if err != nil { - return response.Error(http.StatusInternalServerError, "Failed to update annotation", err) - } - + userID, _ := identity.UserIdentifier(c.GetID()) existing := annotations.Item{ OrgID: c.SignedInUser.GetOrgID(), UserID: userID,