mirror of https://github.com/grafana/grafana.git
31 lines
799 B
Go
31 lines
799 B
Go
package api
|
|
|
|
import (
|
|
"net/http"
|
|
|
|
"github.com/grafana/grafana/pkg/api/response"
|
|
contextmodel "github.com/grafana/grafana/pkg/services/contexthandler/model"
|
|
)
|
|
|
|
func (hs *HTTPServer) GetFeatureToggles(ctx *contextmodel.ReqContext) response.Response {
|
|
featureMgmtCfg := hs.Cfg.FeatureManagement
|
|
|
|
features := hs.Features.GetFlags()
|
|
enabledFeatures := hs.Features.GetEnabled(ctx.Req.Context())
|
|
|
|
for i := 0; i < len(features); {
|
|
ft := features[i]
|
|
if _, ok := featureMgmtCfg.HiddenToggles[ft.Name]; ok {
|
|
features = append(features[:i], features[i+1:]...) // remove feature
|
|
continue
|
|
}
|
|
if _, ok := featureMgmtCfg.ReadOnlyToggles[ft.Name]; ok {
|
|
features[i].ReadOnly = true
|
|
}
|
|
features[i].Enabled = enabledFeatures[ft.Name]
|
|
i++
|
|
}
|
|
|
|
return response.JSON(http.StatusOK, features)
|
|
}
|