diff --git a/pkg/services/annotations/accesscontrol/accesscontrol.go b/pkg/services/annotations/accesscontrol/accesscontrol.go index f2e89acd23b..19eeca27b63 100644 --- a/pkg/services/annotations/accesscontrol/accesscontrol.go +++ b/pkg/services/annotations/accesscontrol/accesscontrol.go @@ -12,6 +12,7 @@ import ( "github.com/grafana/grafana/pkg/services/featuremgmt" "github.com/grafana/grafana/pkg/services/sqlstore/permissions" "github.com/grafana/grafana/pkg/services/sqlstore/searchstore" + "github.com/grafana/grafana/pkg/setting" ) var ( @@ -28,16 +29,21 @@ var ( ) type AuthService struct { - db db.DB - features featuremgmt.FeatureToggles - dashSvc dashboards.DashboardService + db db.DB + features featuremgmt.FeatureToggles + dashSvc dashboards.DashboardService + searchDashboardsPageLimit int64 } -func NewAuthService(db db.DB, features featuremgmt.FeatureToggles, dashSvc dashboards.DashboardService) *AuthService { +func NewAuthService(db db.DB, features featuremgmt.FeatureToggles, dashSvc dashboards.DashboardService, cfg *setting.Cfg) *AuthService { + section := cfg.Raw.Section("annotations") + searchDashboardsPageLimit := section.Key("search_dashboards_page_limit").MustInt64(1000) + return &AuthService{ - db: db, - features: features, - dashSvc: dashSvc, + db: db, + features: features, + dashSvc: dashSvc, + searchDashboardsPageLimit: searchDashboardsPageLimit, } } @@ -142,7 +148,7 @@ func (authz *AuthService) dashboardsWithVisibleAnnotations(ctx context.Context, SignedInUser: query.SignedInUser, Page: query.Page, Type: filterType, - Limit: 1000, + Limit: authz.searchDashboardsPageLimit, }) if err != nil { return nil, err diff --git a/pkg/services/annotations/accesscontrol/accesscontrol_test.go b/pkg/services/annotations/accesscontrol/accesscontrol_test.go index f4ec20ffcfa..45ecf740c6f 100644 --- a/pkg/services/annotations/accesscontrol/accesscontrol_test.go +++ b/pkg/services/annotations/accesscontrol/accesscontrol_test.go @@ -207,7 +207,7 @@ func TestIntegrationAuthorize(t *testing.T) { t.Run(tc.name, func(t *testing.T) { u.Permissions = map[int64]map[string][]string{1: tc.permissions} testutil.SetupRBACPermission(t, sql, role, u) - authz := NewAuthService(sql, featuremgmt.WithFeatures(tc.featureToggle), dashSvc) + authz := NewAuthService(sql, featuremgmt.WithFeatures(tc.featureToggle), dashSvc, cfg) query := annotations.ItemQuery{SignedInUser: u, OrgID: 1} resources, err := authz.Authorize(context.Background(), query) diff --git a/pkg/services/annotations/annotationsimpl/annotations.go b/pkg/services/annotations/annotationsimpl/annotations.go index 496b782be8f..b2895f64e37 100644 --- a/pkg/services/annotations/annotationsimpl/annotations.go +++ b/pkg/services/annotations/annotationsimpl/annotations.go @@ -53,7 +53,7 @@ func ProvideService( return &RepositoryImpl{ db: db, features: features, - authZ: accesscontrol.NewAuthService(db, features, dashSvc), + authZ: accesscontrol.NewAuthService(db, features, dashSvc, cfg), reader: read, writer: write, }