* add deprecation on featuremgmt.IsEnabledGlobally * add nolint reason * add reasonable deprecation message * remove junk edits * add more nolints * addressing review comments * Update pkg/services/featuremgmt/models.go Co-authored-by: Dave Henderson <dave.henderson@grafana.com> --------- Co-authored-by: Dave Henderson <dave.henderson@grafana.com>
59 lines
1.4 KiB
Go
59 lines
1.4 KiB
Go
package accesscontrol
|
|
|
|
import (
|
|
"context"
|
|
|
|
"github.com/grafana/dskit/services"
|
|
|
|
"github.com/grafana/grafana/pkg/infra/log"
|
|
"github.com/grafana/grafana/pkg/services/featuremgmt"
|
|
)
|
|
|
|
const FixedRolesLoaderServiceName = "accesscontrol.fixedrolesloader"
|
|
|
|
type FixedRolesLoader struct {
|
|
services.NamedService
|
|
|
|
roleRegistry RoleRegistry
|
|
features featuremgmt.FeatureToggles
|
|
log log.Logger
|
|
}
|
|
|
|
func ProvideFixedRolesLoader(roleRegistry RoleRegistry, features featuremgmt.FeatureToggles) *FixedRolesLoader {
|
|
loader := &FixedRolesLoader{
|
|
roleRegistry: roleRegistry,
|
|
features: features,
|
|
log: log.New(FixedRolesLoaderServiceName),
|
|
}
|
|
|
|
loader.NamedService = services.NewBasicService(loader.starting, loader.running, nil).WithName(FixedRolesLoaderServiceName)
|
|
return loader
|
|
}
|
|
|
|
func (l *FixedRolesLoader) starting(ctx context.Context) error {
|
|
ctxLogger := l.log.FromContext(ctx)
|
|
|
|
ctxLogger.Debug("Registering fixed roles")
|
|
if err := l.roleRegistry.RegisterFixedRoles(ctx); err != nil {
|
|
ctxLogger.Error("Failed to register fixed roles", "error", err)
|
|
return err
|
|
}
|
|
|
|
return nil
|
|
}
|
|
|
|
func (l *FixedRolesLoader) running(ctx context.Context) error {
|
|
<-ctx.Done()
|
|
return nil
|
|
}
|
|
|
|
func (l *FixedRolesLoader) IsDisabled() bool {
|
|
//nolint:staticcheck // not yet migrated to OpenFeature
|
|
return !l.features.IsEnabledGlobally(featuremgmt.FlagPluginStoreServiceLoading)
|
|
}
|
|
|
|
func (l *FixedRolesLoader) Run(ctx context.Context) error {
|
|
<-ctx.Done()
|
|
return nil
|
|
}
|