mirror of
https://github.com/grafana/grafana.git
synced 2025-08-02 07:12:13 +08:00
99 lines
3.3 KiB
Go
99 lines
3.3 KiB
Go
package testutil
|
|
|
|
import (
|
|
"github.com/grafana/grafana/pkg/api/routing"
|
|
"github.com/grafana/grafana/pkg/bus"
|
|
"github.com/grafana/grafana/pkg/infra/localcache"
|
|
"github.com/grafana/grafana/pkg/infra/tracing"
|
|
"github.com/grafana/grafana/pkg/services/accesscontrol/acimpl"
|
|
acdb "github.com/grafana/grafana/pkg/services/accesscontrol/database"
|
|
"github.com/grafana/grafana/pkg/services/accesscontrol/ossaccesscontrol"
|
|
"github.com/grafana/grafana/pkg/services/accesscontrol/permreg"
|
|
"github.com/grafana/grafana/pkg/services/accesscontrol/resourcepermissions"
|
|
"github.com/grafana/grafana/pkg/services/authz/zanzana"
|
|
"github.com/grafana/grafana/pkg/services/dashboards"
|
|
"github.com/grafana/grafana/pkg/services/dashboards/database"
|
|
"github.com/grafana/grafana/pkg/services/featuremgmt"
|
|
"github.com/grafana/grafana/pkg/services/folder/folderimpl"
|
|
"github.com/grafana/grafana/pkg/services/licensing/licensingtest"
|
|
"github.com/grafana/grafana/pkg/services/org/orgimpl"
|
|
"github.com/grafana/grafana/pkg/services/quota/quotatest"
|
|
"github.com/grafana/grafana/pkg/services/sqlstore"
|
|
"github.com/grafana/grafana/pkg/services/supportbundles/bundleregistry"
|
|
"github.com/grafana/grafana/pkg/services/supportbundles/supportbundlestest"
|
|
"github.com/grafana/grafana/pkg/services/tag/tagimpl"
|
|
"github.com/grafana/grafana/pkg/services/team/teamimpl"
|
|
"github.com/grafana/grafana/pkg/services/user/userimpl"
|
|
"github.com/grafana/grafana/pkg/setting"
|
|
)
|
|
|
|
func ProvideFolderPermissions(
|
|
features featuremgmt.FeatureToggles,
|
|
cfg *setting.Cfg,
|
|
sqlStore *sqlstore.SQLStore,
|
|
) (*ossaccesscontrol.FolderPermissionsService, error) {
|
|
actionSets := resourcepermissions.NewActionSetService(features)
|
|
|
|
license := licensingtest.NewFakeLicensing()
|
|
license.On("FeatureEnabled", "accesscontrol.enforcement").Return(true).Maybe()
|
|
|
|
ac := acimpl.ProvideAccessControl(featuremgmt.WithFeatures())
|
|
|
|
quotaService := quotatest.New(false, nil)
|
|
dashboardStore, err := database.ProvideDashboardStore(sqlStore, cfg, features, tagimpl.ProvideService(sqlStore))
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
fStore := folderimpl.ProvideStore(sqlStore)
|
|
folderStore := folderimpl.ProvideDashboardFolderStore(sqlStore)
|
|
fService := folderimpl.ProvideService(fStore, ac, bus.ProvideBus(tracing.InitializeTracerForTest()),
|
|
dashboardStore, folderStore, sqlStore, features,
|
|
supportbundlestest.NewFakeBundleService(), nil, cfg, nil, tracing.InitializeTracerForTest())
|
|
|
|
acSvc := acimpl.ProvideOSSService(
|
|
cfg, acdb.ProvideService(sqlStore), actionSets, localcache.ProvideService(),
|
|
features, tracing.InitializeTracerForTest(), zanzana.NewNoopClient(), sqlStore, permreg.ProvidePermissionRegistry(),
|
|
nil, fService,
|
|
)
|
|
|
|
orgService, err := orgimpl.ProvideService(sqlStore, cfg, quotaService)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
teamSvc, err := teamimpl.ProvideService(sqlStore, cfg, tracing.InitializeTracerForTest())
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
cache := localcache.ProvideService()
|
|
|
|
userSvc, err := userimpl.ProvideService(
|
|
sqlStore,
|
|
orgService,
|
|
cfg,
|
|
teamSvc,
|
|
cache,
|
|
tracing.InitializeTracerForTest(),
|
|
quotaService,
|
|
bundleregistry.ProvideService(),
|
|
)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
return ossaccesscontrol.ProvideFolderPermissions(
|
|
cfg,
|
|
features,
|
|
routing.NewRouteRegister(),
|
|
sqlStore,
|
|
ac,
|
|
license,
|
|
&dashboards.FakeDashboardStore{},
|
|
fService,
|
|
acSvc,
|
|
teamSvc,
|
|
userSvc,
|
|
actionSets,
|
|
)
|
|
}
|