diff --git a/pkg/api/folder_test.go b/pkg/api/folder_test.go index 71a532c5381..9a4d42274bc 100644 --- a/pkg/api/folder_test.go +++ b/pkg/api/folder_test.go @@ -440,7 +440,9 @@ func TestFolderGetAPIEndpoint(t *testing.T) { expectedParentOrgIDs: []int64{0, 0}, expectedParentTitles: []string{"parent title", "subfolder title"}, permissions: []accesscontrol.Permission{ - {Action: dashboards.ActionFoldersRead, Scope: dashboards.ScopeFoldersProvider.GetResourceAllScope()}, + {Action: dashboards.ActionFoldersRead, Scope: dashboards.ScopeFoldersProvider.GetResourceScopeUID("uid")}, + {Action: dashboards.ActionFoldersRead, Scope: dashboards.ScopeFoldersProvider.GetResourceScopeUID("parent")}, + {Action: dashboards.ActionFoldersRead, Scope: dashboards.ScopeFoldersProvider.GetResourceScopeUID("subfolder")}, }, }, { @@ -455,6 +457,19 @@ func TestFolderGetAPIEndpoint(t *testing.T) { {Action: dashboards.ActionFoldersRead, Scope: dashboards.ScopeFoldersProvider.GetResourceScopeUID("uid")}, }, }, + { + description: "get folder by UID should return some parent folder titles and some parent folders as redacted if nested folder are enabled and user only has read access to some parent folders", + URL: "/api/folders/uid", + expectedCode: http.StatusOK, + features: featuremgmt.WithFeatures(featuremgmt.FlagNestedFolders), + expectedParentUIDs: []string{REDACTED, "subfolder"}, + expectedParentOrgIDs: []int64{0, 0}, + expectedParentTitles: []string{REDACTED, "subfolder title"}, + permissions: []accesscontrol.Permission{ + {Action: dashboards.ActionFoldersRead, Scope: dashboards.ScopeFoldersProvider.GetResourceScopeUID("uid")}, + {Action: dashboards.ActionFoldersRead, Scope: dashboards.ScopeFoldersProvider.GetResourceScopeUID("subfolder")}, + }, + }, { description: "get folder by UID should not return parent folders if nested folder are disabled", URL: "/api/folders/uid",