mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
Datasources: allow for query but with warning (#93091)
allow for query but with warning
This commit is contained in:
@@ -54,7 +54,7 @@ func (hs *HTTPServer) GetDataSources(c *contextmodel.ReqContext) response.Respon
|
|||||||
return response.Error(http.StatusInternalServerError, "Failed to query datasources", err)
|
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 {
|
if err != nil {
|
||||||
return response.Error(http.StatusInternalServerError, "Failed to query datasources", err)
|
return response.Error(http.StatusInternalServerError, "Failed to query datasources", err)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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
|
// If RBAC is enabled, it will filter out all datasources for a public user, so we need to skip it
|
||||||
orgDataSources = dataSources
|
orgDataSources = dataSources
|
||||||
} else {
|
} 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 {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -14,6 +14,10 @@ func (n AllowGuardian) CanQuery(datasourceID int64) (bool, error) {
|
|||||||
return true, nil
|
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) {
|
func (n AllowGuardian) FilterDatasourcesByQueryPermissions(ds []*datasources.DataSource) ([]*datasources.DataSource, error) {
|
||||||
return ds, nil
|
return ds, nil
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ type DatasourceGuardianProvider interface {
|
|||||||
|
|
||||||
type DatasourceGuardian interface {
|
type DatasourceGuardian interface {
|
||||||
CanQuery(datasourceID int64) (bool, error)
|
CanQuery(datasourceID int64) (bool, error)
|
||||||
|
FilterDatasourcesByReadPermissions([]*datasources.DataSource) ([]*datasources.DataSource, error)
|
||||||
FilterDatasourcesByQueryPermissions([]*datasources.DataSource) ([]*datasources.DataSource, error)
|
FilterDatasourcesByQueryPermissions([]*datasources.DataSource) ([]*datasources.DataSource, error)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user