From b58db3681495232c0d195cd00aafccc7cebb02d8 Mon Sep 17 00:00:00 2001 From: Eric Leijonmarck Date: Mon, 28 Oct 2024 09:14:19 +0000 Subject: [PATCH] [v11.2.x] Folders: Add admin permissions upon creation of a folder w. SA (#95416) 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) --- pkg/api/folder.go | 2 +- pkg/services/dashboards/service/dashboard_service.go | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/pkg/api/folder.go b/pkg/api/folder.go index 1046ad7ed85..42a5619d3eb 100644 --- a/pkg/api/folder.go +++ b/pkg/api/folder.go @@ -194,7 +194,7 @@ func (hs *HTTPServer) setDefaultFolderPermissions(ctx context.Context, orgID int var permissions []accesscontrol.SetResourcePermissionCommand - if identity.IsIdentityType(user.GetID(), identity.TypeUser) { + if identity.IsIdentityType(user.GetID(), identity.TypeUser, identity.TypeServiceAccount) { userID, err := identity.UserIdentifier(user.GetID()) if err != nil { return err diff --git a/pkg/services/dashboards/service/dashboard_service.go b/pkg/services/dashboards/service/dashboard_service.go index 7d70832a8d6..c67298ee085 100644 --- a/pkg/services/dashboards/service/dashboard_service.go +++ b/pkg/services/dashboards/service/dashboard_service.go @@ -492,7 +492,7 @@ func (dr *DashboardServiceImpl) setDefaultPermissions(ctx context.Context, dto * userID, err := identity.IntIdentifier(dto.User.GetID()) if err != nil { dr.log.Error("Could not make user admin", "dashboard", dash.Title, "id", dto.User.GetID(), "error", err) - } else if identity.IsIdentityType(dto.User.GetID(), identity.TypeUser) { + } else if identity.IsIdentityType(dto.User.GetID(), identity.TypeUser, identity.TypeServiceAccount) { permissions = append(permissions, accesscontrol.SetResourcePermissionCommand{ UserID: userID, Permission: dashboardaccess.PERMISSION_ADMIN.String(), })