grafana/pkg/services/publicdashboards/validation/validator.go
owensmallwood cf86c696e0
Public Dashboards: Adds template variable validation for pubdash on the backend (#52566)
Validates template variables for pubdash on the backend when saving a public dashboard
2022-07-21 13:56:20 -06:00

28 lines
751 B
Go

package validation
import (
"github.com/grafana/grafana/pkg/models"
"github.com/grafana/grafana/pkg/services/dashboards"
publicDashboardModels "github.com/grafana/grafana/pkg/services/publicdashboards/models"
)
func ValidateSavePublicDashboard(dto *publicDashboardModels.SavePublicDashboardConfigDTO, dashboard *models.Dashboard) error {
var err error
if len(dto.DashboardUid) == 0 {
return dashboards.ErrDashboardIdentifierNotSet
}
if hasTemplateVariables(dashboard) {
return publicDashboardModels.ErrPublicDashboardHasTemplateVariables
}
return err
}
func hasTemplateVariables(dashboard *models.Dashboard) bool {
templateVariables := dashboard.Data.Get("templating").Get("list").MustArray()
return len(templateVariables) > 0
}