From 446104d12076e4015f3abec94e90c4c017cea7df Mon Sep 17 00:00:00 2001 From: Daniel Lee Date: Thu, 22 Jun 2017 02:43:33 +0200 Subject: [PATCH] dashfolders: allows phantomjs rendering for alerting Makes the alerting user an admin when rendering a png for emails --- pkg/components/renderer/renderer.go | 23 ++++++++++++++--------- pkg/services/alerting/notifier.go | 9 +++++---- 2 files changed, 19 insertions(+), 13 deletions(-) diff --git a/pkg/components/renderer/renderer.go b/pkg/components/renderer/renderer.go index 99848e48456..8bd0125d7c7 100644 --- a/pkg/components/renderer/renderer.go +++ b/pkg/components/renderer/renderer.go @@ -21,14 +21,15 @@ import ( ) type RenderOpts struct { - Path string - Width string - Height string - Timeout string - OrgId int64 - UserId int64 - OrgRole models.RoleType - Timezone string + Path string + Width string + Height string + Timeout string + OrgId int64 + UserId int64 + OrgRole models.RoleType + Timezone string + IsAlertContext bool } var rendererLog log.Logger = log.New("png-renderer") @@ -75,7 +76,11 @@ func RenderToPng(params *RenderOpts) (string, error) { pngPath, _ := filepath.Abs(filepath.Join(setting.ImagesDir, util.GetRandomString(20))) pngPath = pngPath + ".png" - renderKey := middleware.AddRenderAuthKey(params.OrgId, params.UserId, params.OrgRole) + orgRole := params.OrgRole + if params.IsAlertContext { + orgRole = models.ROLE_ADMIN + } + renderKey := middleware.AddRenderAuthKey(params.OrgId, params.UserId, orgRole) defer middleware.RemoveRenderAuthKey(renderKey) cmdArgs := []string{ diff --git a/pkg/services/alerting/notifier.go b/pkg/services/alerting/notifier.go index e831b566b22..b2cdac30b80 100644 --- a/pkg/services/alerting/notifier.go +++ b/pkg/services/alerting/notifier.go @@ -79,10 +79,11 @@ func (n *notificationService) uploadImage(context *EvalContext) (err error) { } renderOpts := &renderer.RenderOpts{ - Width: "800", - Height: "400", - Timeout: "30", - OrgId: context.Rule.OrgId, + Width: "800", + Height: "400", + Timeout: "30", + OrgId: context.Rule.OrgId, + IsAlertContext: true, } if slug, err := context.GetDashboardSlug(); err != nil {