PublicDashboards: Middleware creation (#77941)
This commit is contained in:
@@ -26,6 +26,7 @@ type Api struct {
|
||||
AccessControl accesscontrol.AccessControl
|
||||
Features *featuremgmt.FeatureManager
|
||||
Log log.Logger
|
||||
Middleware publicdashboards.Middleware
|
||||
}
|
||||
|
||||
func ProvideApi(
|
||||
@@ -33,6 +34,7 @@ func ProvideApi(
|
||||
rr routing.RouteRegister,
|
||||
ac accesscontrol.AccessControl,
|
||||
features *featuremgmt.FeatureManager,
|
||||
md publicdashboards.Middleware,
|
||||
) *Api {
|
||||
api := &Api{
|
||||
PublicDashboardService: pd,
|
||||
@@ -40,6 +42,7 @@ func ProvideApi(
|
||||
AccessControl: ac,
|
||||
Features: features,
|
||||
Log: log.New("publicdashboards.api"),
|
||||
Middleware: md,
|
||||
}
|
||||
|
||||
// attach api if PublicDashboards feature flag is enabled
|
||||
@@ -56,11 +59,11 @@ func (api *Api) RegisterAPIEndpoints() {
|
||||
// Anonymous access to public dashboard route is configured in pkg/api/api.go
|
||||
// because it is deeply dependent on the HTTPServer.Index() method and would result in a
|
||||
// circular dependency
|
||||
|
||||
api.RouteRegister.Get("/api/public/dashboards/:accessToken", routing.Wrap(api.ViewPublicDashboard))
|
||||
api.RouteRegister.Get("/api/public/dashboards/:accessToken/annotations", routing.Wrap(api.GetPublicAnnotations))
|
||||
|
||||
api.RouteRegister.Post("/api/public/dashboards/:accessToken/panels/:panelId/query", routing.Wrap(api.QueryPublicDashboard))
|
||||
api.RouteRegister.Group("/api/public/dashboards/:accessToken", func(apiRoute routing.RouteRegister) {
|
||||
apiRoute.Get("/", routing.Wrap(api.ViewPublicDashboard))
|
||||
apiRoute.Get("/annotations", routing.Wrap(api.GetPublicAnnotations))
|
||||
apiRoute.Post("/panels/:panelId/query", routing.Wrap(api.QueryPublicDashboard))
|
||||
}, api.Middleware.HandleApi)
|
||||
|
||||
// Auth endpoints
|
||||
auth := accesscontrol.Middleware(api.AccessControl)
|
||||
@@ -68,7 +71,6 @@ func (api *Api) RegisterAPIEndpoints() {
|
||||
|
||||
// List public dashboards for org
|
||||
api.RouteRegister.Get("/api/dashboards/public-dashboards", middleware.ReqSignedIn, routing.Wrap(api.ListPublicDashboards))
|
||||
|
||||
// Get public dashboard
|
||||
api.RouteRegister.Get("/api/dashboards/uid/:dashboardUid/public-dashboards",
|
||||
auth(accesscontrol.EvalPermission(dashboards.ActionDashboardsRead, uidScope)),
|
||||
|
||||
Reference in New Issue
Block a user