mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
Nested Folders: Do not refer to the configuration for checking for the flag (#59197)
* Nested Folders: Do not refer to the configuration for checking for the flag Use always features.IsEnabled() instead * Depend on the interface instead
This commit is contained in:
parent
a0334a92f5
commit
0af96936be
@ -34,7 +34,7 @@ type Service struct {
|
|||||||
dashboardService dashboards.DashboardService
|
dashboardService dashboards.DashboardService
|
||||||
dashboardStore dashboards.Store
|
dashboardStore dashboards.Store
|
||||||
searchService *search.SearchService
|
searchService *search.SearchService
|
||||||
features *featuremgmt.FeatureManager
|
features featuremgmt.FeatureToggles
|
||||||
permissions accesscontrol.FolderPermissionsService
|
permissions accesscontrol.FolderPermissionsService
|
||||||
accessControl accesscontrol.AccessControl
|
accessControl accesscontrol.AccessControl
|
||||||
|
|
||||||
@ -49,7 +49,7 @@ func ProvideService(
|
|||||||
dashboardService dashboards.DashboardService,
|
dashboardService dashboards.DashboardService,
|
||||||
dashboardStore dashboards.Store,
|
dashboardStore dashboards.Store,
|
||||||
db db.DB, // DB for the (new) nested folder store
|
db db.DB, // DB for the (new) nested folder store
|
||||||
features *featuremgmt.FeatureManager,
|
features featuremgmt.FeatureToggles,
|
||||||
folderPermissionsService accesscontrol.FolderPermissionsService,
|
folderPermissionsService accesscontrol.FolderPermissionsService,
|
||||||
searchService *search.SearchService,
|
searchService *search.SearchService,
|
||||||
) folder.Service {
|
) folder.Service {
|
||||||
@ -97,7 +97,7 @@ func (s *Service) Get(ctx context.Context, cmd *folder.GetFolderQuery) (*folder.
|
|||||||
return nil, folder.ErrBadRequest.Errorf("missing signed in user")
|
return nil, folder.ErrBadRequest.Errorf("missing signed in user")
|
||||||
}
|
}
|
||||||
|
|
||||||
if s.cfg.IsFeatureToggleEnabled(featuremgmt.FlagNestedFolders) {
|
if s.features.IsEnabled(featuremgmt.FlagNestedFolders) {
|
||||||
if ok, err := s.accessControl.Evaluate(ctx, cmd.SignedInUser, accesscontrol.EvalPermission(
|
if ok, err := s.accessControl.Evaluate(ctx, cmd.SignedInUser, accesscontrol.EvalPermission(
|
||||||
dashboards.ActionFoldersRead, dashboards.ScopeFoldersProvider.GetResourceScopeUID(*cmd.UID),
|
dashboards.ActionFoldersRead, dashboards.ScopeFoldersProvider.GetResourceScopeUID(*cmd.UID),
|
||||||
)); !ok {
|
)); !ok {
|
||||||
|
@ -57,7 +57,6 @@ func TestIntegrationFolderService(t *testing.T) {
|
|||||||
cfg := setting.NewCfg()
|
cfg := setting.NewCfg()
|
||||||
cfg.RBACEnabled = false
|
cfg.RBACEnabled = false
|
||||||
features := featuremgmt.WithFeatures()
|
features := featuremgmt.WithFeatures()
|
||||||
cfg.IsFeatureToggleEnabled = features.IsEnabled
|
|
||||||
folderPermissions := acmock.NewMockedPermissionsService()
|
folderPermissions := acmock.NewMockedPermissionsService()
|
||||||
dashboardPermissions := acmock.NewMockedPermissionsService()
|
dashboardPermissions := acmock.NewMockedPermissionsService()
|
||||||
dashboardService := dashboardsvc.ProvideDashboardService(cfg, dashStore, nil, features, folderPermissions, dashboardPermissions, acmock.New())
|
dashboardService := dashboardsvc.ProvideDashboardService(cfg, dashStore, nil, features, folderPermissions, dashboardPermissions, acmock.New())
|
||||||
@ -333,21 +332,12 @@ func TestNestedFolderServiceFeatureToggle(t *testing.T) {
|
|||||||
dashStore.On("GetFolderByID", mock.Anything, mock.AnythingOfType("int64"), mock.AnythingOfType("int64")).Return(&folder.Folder{}, nil)
|
dashStore.On("GetFolderByID", mock.Anything, mock.AnythingOfType("int64"), mock.AnythingOfType("int64")).Return(&folder.Folder{}, nil)
|
||||||
cfg := setting.NewCfg()
|
cfg := setting.NewCfg()
|
||||||
cfg.RBACEnabled = false
|
cfg.RBACEnabled = false
|
||||||
nestedFoldersEnabled := true
|
|
||||||
features := featuremgmt.WithFeatures()
|
|
||||||
cfg.IsFeatureToggleEnabled = func(key string) bool {
|
|
||||||
if key == featuremgmt.FlagNestedFolders {
|
|
||||||
return nestedFoldersEnabled
|
|
||||||
}
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
cfg.IsFeatureToggleEnabled = features.IsEnabled
|
|
||||||
folderService := &Service{
|
folderService := &Service{
|
||||||
cfg: cfg,
|
cfg: cfg,
|
||||||
store: folderStore,
|
store: folderStore,
|
||||||
dashboardStore: &dashStore,
|
dashboardStore: &dashStore,
|
||||||
dashboardService: &dashboardsvc,
|
dashboardService: &dashboardsvc,
|
||||||
features: features,
|
features: featuremgmt.WithFeatures(featuremgmt.FlagNestedFolders),
|
||||||
}
|
}
|
||||||
t.Run("create folder", func(t *testing.T) {
|
t.Run("create folder", func(t *testing.T) {
|
||||||
folderStore.ExpectedFolder = &folder.Folder{}
|
folderStore.ExpectedFolder = &folder.Folder{}
|
||||||
@ -396,15 +386,13 @@ func TestNestedFolderService(t *testing.T) {
|
|||||||
// nothing enabled yet
|
// nothing enabled yet
|
||||||
cfg := setting.NewCfg()
|
cfg := setting.NewCfg()
|
||||||
cfg.RBACEnabled = false
|
cfg.RBACEnabled = false
|
||||||
features := featuremgmt.WithFeatures()
|
|
||||||
cfg.IsFeatureToggleEnabled = features.IsEnabled
|
|
||||||
foldersvc := &Service{
|
foldersvc := &Service{
|
||||||
cfg: cfg,
|
cfg: cfg,
|
||||||
log: log.New("test-folder-service"),
|
log: log.New("test-folder-service"),
|
||||||
dashboardService: &dashboardsvc,
|
dashboardService: &dashboardsvc,
|
||||||
dashboardStore: &dashStore,
|
dashboardStore: &dashStore,
|
||||||
store: store,
|
store: store,
|
||||||
features: features,
|
features: featuremgmt.WithFeatures(),
|
||||||
}
|
}
|
||||||
|
|
||||||
t.Run("When create folder, no create in folder table done", func(t *testing.T) {
|
t.Run("When create folder, no create in folder table done", func(t *testing.T) {
|
||||||
@ -456,15 +444,13 @@ func TestNestedFolderService(t *testing.T) {
|
|||||||
// nothing enabled yet
|
// nothing enabled yet
|
||||||
cfg := setting.NewCfg()
|
cfg := setting.NewCfg()
|
||||||
cfg.RBACEnabled = false
|
cfg.RBACEnabled = false
|
||||||
features := featuremgmt.WithFeatures("nestedFolders")
|
|
||||||
cfg.IsFeatureToggleEnabled = features.IsEnabled
|
|
||||||
foldersvc := &Service{
|
foldersvc := &Service{
|
||||||
cfg: cfg,
|
cfg: cfg,
|
||||||
log: log.New("test-folder-service"),
|
log: log.New("test-folder-service"),
|
||||||
dashboardService: dashboardsvc,
|
dashboardService: dashboardsvc,
|
||||||
dashboardStore: dashStore,
|
dashboardStore: dashStore,
|
||||||
store: store,
|
store: store,
|
||||||
features: features,
|
features: featuremgmt.WithFeatures("nestedFolders"),
|
||||||
accessControl: actest.FakeAccessControl{
|
accessControl: actest.FakeAccessControl{
|
||||||
ExpectedEvaluate: true,
|
ExpectedEvaluate: true,
|
||||||
},
|
},
|
||||||
|
Loading…
Reference in New Issue
Block a user