Datasources: allow for query but with warning (#93091)

allow for query but with warning
This commit is contained in:
Eric Leijonmarck 2024-09-10 10:19:02 +01:00 committed by GitHub
parent 544dbce708
commit f3ede1f53d
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 7 additions and 2 deletions

View File

@ -54,7 +54,7 @@ func (hs *HTTPServer) GetDataSources(c *contextmodel.ReqContext) response.Respon
return response.Error(http.StatusInternalServerError, "Failed to query datasources", err)
}
filtered, err := hs.dsGuardian.New(c.SignedInUser.OrgID, c.SignedInUser).FilterDatasourcesByQueryPermissions(dataSources)
filtered, err := hs.dsGuardian.New(c.SignedInUser.OrgID, c.SignedInUser).FilterDatasourcesByReadPermissions(dataSources)
if err != nil {
return response.Error(http.StatusInternalServerError, "Failed to query datasources", err)
}

View File

@ -412,7 +412,7 @@ func (hs *HTTPServer) getFSDataSources(c *contextmodel.ReqContext, availablePlug
// If RBAC is enabled, it will filter out all datasources for a public user, so we need to skip it
orgDataSources = dataSources
} else {
filtered, err := hs.dsGuardian.New(c.SignedInUser.OrgID, c.SignedInUser).FilterDatasourcesByQueryPermissions(dataSources)
filtered, err := hs.dsGuardian.New(c.SignedInUser.OrgID, c.SignedInUser).FilterDatasourcesByReadPermissions(dataSources)
if err != nil {
return nil, err
}

View File

@ -14,6 +14,10 @@ func (n AllowGuardian) CanQuery(datasourceID int64) (bool, error) {
return true, nil
}
func (n AllowGuardian) FilterDatasourcesByReadPermissions(ds []*datasources.DataSource) ([]*datasources.DataSource, error) {
return ds, nil
}
func (n AllowGuardian) FilterDatasourcesByQueryPermissions(ds []*datasources.DataSource) ([]*datasources.DataSource, error) {
return ds, nil
}

View File

@ -11,6 +11,7 @@ type DatasourceGuardianProvider interface {
type DatasourceGuardian interface {
CanQuery(datasourceID int64) (bool, error)
FilterDatasourcesByReadPermissions([]*datasources.DataSource) ([]*datasources.DataSource, error)
FilterDatasourcesByQueryPermissions([]*datasources.DataSource) ([]*datasources.DataSource, error)
}