diff --git a/pkg/services/datasources/permissions/datasource_permissions.go b/pkg/services/datasources/permissions/datasource_permissions.go index e219ec0ad8f..428a1b2e6dd 100644 --- a/pkg/services/datasources/permissions/datasource_permissions.go +++ b/pkg/services/datasources/permissions/datasource_permissions.go @@ -4,6 +4,7 @@ import ( "context" "errors" + "github.com/grafana/grafana/pkg/models" "github.com/grafana/grafana/pkg/services/datasources" ) @@ -11,6 +12,7 @@ var ErrNotImplemented = errors.New("not implemented") type DatasourcePermissionsService interface { FilterDatasourcesBasedOnQueryPermissions(ctx context.Context, cmd *datasources.DatasourcesPermissionFilterQuery) error + FilterDatasourceUidsBasedOnQueryPermissions(ctx context.Context, user *models.SignedInUser, datasourceUids []string) ([]string, error) } // dummy method @@ -18,6 +20,10 @@ func (hs *OSSDatasourcePermissionsService) FilterDatasourcesBasedOnQueryPermissi return ErrNotImplemented } +func (hs *OSSDatasourcePermissionsService) FilterDatasourceUidsBasedOnQueryPermissions(ctx context.Context, user *models.SignedInUser, datasourceUids []string) ([]string, error) { + return nil, ErrNotImplemented +} + type OSSDatasourcePermissionsService struct{} func ProvideDatasourcePermissionsService() *OSSDatasourcePermissionsService { diff --git a/pkg/services/datasources/permissions/datasource_permissions_mocks.go b/pkg/services/datasources/permissions/datasource_permissions_mocks.go index b01e5be6daa..ef98a6dd1b7 100644 --- a/pkg/services/datasources/permissions/datasource_permissions_mocks.go +++ b/pkg/services/datasources/permissions/datasource_permissions_mocks.go @@ -3,12 +3,18 @@ package permissions import ( "context" + "github.com/grafana/grafana/pkg/models" "github.com/grafana/grafana/pkg/services/datasources" ) type mockDatasourcePermissionService struct { - DsResult []*datasources.DataSource - ErrResult error + DsResult []*datasources.DataSource + DsUidResult []string + ErrResult error +} + +func (m *mockDatasourcePermissionService) FilterDatasourceUidsBasedOnQueryPermissions(ctx context.Context, user *models.SignedInUser, datasourceUids []string) ([]string, error) { + return m.DsUidResult, m.ErrResult } func (m *mockDatasourcePermissionService) FilterDatasourcesBasedOnQueryPermissions(ctx context.Context, cmd *datasources.DatasourcesPermissionFilterQuery) error {