Auth: Decouple client and hook registration (#85084)
This commit is contained in:
@@ -1,30 +0,0 @@
|
||||
package service
|
||||
|
||||
import (
|
||||
"github.com/grafana/grafana/pkg/services/accesscontrol"
|
||||
)
|
||||
|
||||
const (
|
||||
ActionRead = "server.usagestats.report:read"
|
||||
)
|
||||
|
||||
var (
|
||||
usagestatsReaderRole = accesscontrol.RoleDTO{
|
||||
Name: "fixed:usagestats:reader",
|
||||
DisplayName: "Usage stats report reader",
|
||||
Description: "View usage statistics report",
|
||||
Group: "Statistics",
|
||||
Permissions: []accesscontrol.Permission{
|
||||
{Action: ActionRead},
|
||||
},
|
||||
}
|
||||
)
|
||||
|
||||
func declareFixedRoles(ac accesscontrol.Service) error {
|
||||
usagestatsReader := accesscontrol.RoleRegistration{
|
||||
Role: usagestatsReaderRole,
|
||||
Grants: []string{string(accesscontrol.RoleGrafanaAdmin)},
|
||||
}
|
||||
|
||||
return ac.DeclareFixedRoles(usagestatsReader)
|
||||
}
|
||||
@@ -15,7 +15,7 @@ func (uss *UsageStats) registerAPIEndpoints() {
|
||||
authorize := accesscontrol.Middleware(uss.accesscontrol)
|
||||
|
||||
uss.RouteRegister.Group(rootUrl, func(subrouter routing.RouteRegister) {
|
||||
subrouter.Get("/usage-report-preview", authorize(accesscontrol.EvalPermission(ActionRead)), routing.Wrap(uss.getUsageReportPreview))
|
||||
subrouter.Get("/usage-report-preview", authorize(accesscontrol.EvalPermission(accesscontrol.ActionUsageStatsRead)), routing.Wrap(uss.getUsageReportPreview))
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
@@ -10,6 +10,7 @@ import (
|
||||
|
||||
"github.com/grafana/grafana/pkg/infra/db/dbtest"
|
||||
"github.com/grafana/grafana/pkg/infra/log"
|
||||
"github.com/grafana/grafana/pkg/services/accesscontrol"
|
||||
"github.com/grafana/grafana/pkg/services/contexthandler/ctxkey"
|
||||
contextmodel "github.com/grafana/grafana/pkg/services/contexthandler/model"
|
||||
"github.com/grafana/grafana/pkg/services/stats"
|
||||
@@ -28,13 +29,13 @@ func TestApi_getUsageStats(t *testing.T) {
|
||||
{
|
||||
desc: "expect usage stats",
|
||||
enabled: true,
|
||||
permissions: map[string][]string{ActionRead: {}},
|
||||
permissions: map[string][]string{accesscontrol.ActionUsageStatsRead: {}},
|
||||
expectedStatus: 200,
|
||||
},
|
||||
{
|
||||
desc: "expect usage stat preview still there after disabling",
|
||||
enabled: false,
|
||||
permissions: map[string][]string{ActionRead: {}},
|
||||
permissions: map[string][]string{accesscontrol.ActionUsageStatsRead: {}},
|
||||
expectedStatus: 200,
|
||||
},
|
||||
{
|
||||
|
||||
@@ -35,7 +35,6 @@ func ProvideService(cfg *setting.Cfg,
|
||||
routeRegister routing.RouteRegister,
|
||||
tracer tracing.Tracer,
|
||||
accesscontrol ac.AccessControl,
|
||||
accesscontrolService ac.Service,
|
||||
bundleRegistry supportbundles.Service,
|
||||
) (*UsageStats, error) {
|
||||
s := &UsageStats{
|
||||
@@ -47,10 +46,6 @@ func ProvideService(cfg *setting.Cfg,
|
||||
accesscontrol: accesscontrol,
|
||||
}
|
||||
|
||||
if err := declareFixedRoles(accesscontrolService); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
s.registerAPIEndpoints()
|
||||
bundleRegistry.RegisterSupportItemCollector(s.supportBundleCollector())
|
||||
|
||||
|
||||
@@ -23,7 +23,6 @@ import (
|
||||
"github.com/grafana/grafana/pkg/infra/tracing"
|
||||
"github.com/grafana/grafana/pkg/infra/usagestats"
|
||||
"github.com/grafana/grafana/pkg/services/accesscontrol/acimpl"
|
||||
"github.com/grafana/grafana/pkg/services/accesscontrol/actest"
|
||||
"github.com/grafana/grafana/pkg/services/supportbundles/supportbundlestest"
|
||||
"github.com/grafana/grafana/pkg/setting"
|
||||
"github.com/grafana/grafana/pkg/tests/testsuite"
|
||||
@@ -248,7 +247,6 @@ func createService(t *testing.T, sqlStore db.DB, withDB bool) *UsageStats {
|
||||
routing.NewRouteRegister(),
|
||||
tracing.InitializeTracerForTest(),
|
||||
acimpl.ProvideAccessControl(cfg),
|
||||
actest.FakeService{},
|
||||
supportbundlestest.NewFakeBundleService(),
|
||||
)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user