Folders: Fix folder pagination for cloud instances with many folders (#90008)

* filter the k6 folder out in the SQL queries rather than during post processing to ensure that the correct number of results is always returned

* linting
This commit is contained in:
Ieva
2024-07-05 11:19:03 +01:00
committed by GitHub
parent 4f06568f8a
commit e9ebb6eaa4
7 changed files with 95 additions and 24 deletions
@@ -7,6 +7,7 @@ import (
"strings"
"time"
"github.com/grafana/grafana/pkg/apimachinery/identity"
"github.com/grafana/grafana/pkg/infra/db"
"github.com/grafana/grafana/pkg/infra/log"
"github.com/grafana/grafana/pkg/infra/metrics"
@@ -876,6 +877,11 @@ func (d *dashboardStore) FindDashboards(ctx context.Context, query *dashboards.F
})
}
// only list k6 folders when requested by a service account - prevents showing k6 folders in the UI for users
if query.SignedInUser == nil || query.SignedInUser.GetID().Namespace() != identity.NamespaceServiceAccount {
filters = append(filters, searchstore.K6FolderFilter{})
}
filters = append(filters, permissions.NewAccessControlDashboardPermissionFilter(query.SignedInUser, query.Permission, query.Type, d.features, recursiveQueriesAreSupported))
filters = append(filters, searchstore.DeletedFilter{Deleted: query.IsDeleted})