From 50c729c23e1a80cbb4853633dc9e7a154ba747a2 Mon Sep 17 00:00:00 2001 From: "Grot (@grafanabot)" <43478413+grafanabot@users.noreply.github.com> Date: Thu, 16 Jun 2022 07:27:16 -0400 Subject: [PATCH] Bug: Fix delete dashboard snapshot for deleted dashboards (#50919) (#50937) * Bug: Fix delete dashboard snapshot for deleted dashboards * Fix lint and make it work for all the errors * Fix lint (cherry picked from commit 8ab8ce609b26c278baf2cb6a8dbf40ad1a13eb67) Co-authored-by: idafurjes <36131195+idafurjes@users.noreply.github.com> --- pkg/api/dashboard_snapshot.go | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/pkg/api/dashboard_snapshot.go b/pkg/api/dashboard_snapshot.go index 93fa34cd385..c2ebc7ef2a2 100644 --- a/pkg/api/dashboard_snapshot.go +++ b/pkg/api/dashboard_snapshot.go @@ -3,6 +3,7 @@ package api import ( "bytes" "encoding/json" + "errors" "fmt" "net/http" "time" @@ -269,11 +270,12 @@ func (hs *HTTPServer) DeleteDashboardSnapshot(c *models.ReqContext) response.Res guardian := guardian.New(c.Req.Context(), dashboardID, c.OrgId, c.SignedInUser) canEdit, err := guardian.CanEdit() - if err != nil { + // check for permissions only if the dahboard is found + if err != nil && !errors.Is(err, models.ErrDashboardNotFound) { return response.Error(500, "Error while checking permissions for snapshot", err) } - if !canEdit && query.Result.UserId != c.SignedInUser.UserId { + if !canEdit && query.Result.UserId != c.SignedInUser.UserId && !errors.Is(err, models.ErrDashboardNotFound) { return response.Error(403, "Access denied to this snapshot", nil) }