From 5889d680e9f1dc3e01f7b6de6d239f7549796c36 Mon Sep 17 00:00:00 2001 From: "grafana-delivery-bot[bot]" <132647405+grafana-delivery-bot[bot]@users.noreply.github.com> Date: Fri, 25 Oct 2024 08:51:09 +0100 Subject: [PATCH] [v11.3.x] Folders: Add admin permissions upon creation of a folder w. SA (#95365) Folders: Add admin permissions upon creation of a folder w. SA (#95072) * add admin permissions upon creation of a folder w. SA * Update pkg/services/folder/folderimpl/folder.go Co-authored-by: Karl Persson * Grant service account permissions for creation of dashboards * Grant service account admin permissions upon creating a datasource * fetch user using the userservice with the userid * Revert "fetch user using the userservice with the userid" This reverts commit 23cba787523dcff373a4b4d3d90d5f2ae923cd8b. * revert back to original datasource creation --------- Co-authored-by: Karl Persson (cherry picked from commit 9ab064bfc5892419eeeffd1f4d73f6e2e5fe4783) Co-authored-by: Eric Leijonmarck --- pkg/services/accesscontrol/ossaccesscontrol/receivers.go | 2 +- pkg/services/dashboards/service/dashboard_service.go | 2 +- pkg/services/folder/folderimpl/folder.go | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/pkg/services/accesscontrol/ossaccesscontrol/receivers.go b/pkg/services/accesscontrol/ossaccesscontrol/receivers.go index a818d8b3e84..1ba9ebcbed0 100644 --- a/pkg/services/accesscontrol/ossaccesscontrol/receivers.go +++ b/pkg/services/accesscontrol/ossaccesscontrol/receivers.go @@ -78,7 +78,7 @@ func (r ReceiverPermissionsService) SetDefaultPermissions(ctx context.Context, o r.log.Debug("Setting default permissions for receiver", "receiver_uid", uid) permissions := defaultPermissions() clearCache := false - if user != nil && user.IsIdentityType(claims.TypeUser) { + if user != nil && user.IsIdentityType(claims.TypeUser, claims.TypeServiceAccount) { userID, err := user.GetInternalID() if err != nil { r.log.Error("Could not make user admin", "receiver_uid", uid, "id", user.GetID(), "error", err) diff --git a/pkg/services/dashboards/service/dashboard_service.go b/pkg/services/dashboards/service/dashboard_service.go index 54ef55b4446..168400e5b95 100644 --- a/pkg/services/dashboards/service/dashboard_service.go +++ b/pkg/services/dashboards/service/dashboard_service.go @@ -523,7 +523,7 @@ func (dr *DashboardServiceImpl) setDefaultPermissions(ctx context.Context, dto * inFolder := dash.FolderID > 0 var permissions []accesscontrol.SetResourcePermissionCommand - if !provisioned && dto.User.IsIdentityType(claims.TypeUser) { + if !provisioned && dto.User.IsIdentityType(claims.TypeUser, claims.TypeServiceAccount) { userID, err := dto.User.GetInternalID() if err != nil { dr.log.Error("Could not make user admin", "dashboard", dash.Title, "id", dto.User.GetID(), "error", err) diff --git a/pkg/services/folder/folderimpl/folder.go b/pkg/services/folder/folderimpl/folder.go index 36f21e37170..10aa08e9e33 100644 --- a/pkg/services/folder/folderimpl/folder.go +++ b/pkg/services/folder/folderimpl/folder.go @@ -681,7 +681,7 @@ func (s *Service) setDefaultFolderPermissions(ctx context.Context, orgID int64, var permissions []accesscontrol.SetResourcePermissionCommand - if user.IsIdentityType(claims.TypeUser) { + if user.IsIdentityType(claims.TypeUser, claims.TypeServiceAccount) { userID, err := user.GetInternalID() if err != nil { return err