Usagestats: Add interface for stats for user.Service and add Usagestats for case_insensitive_login (#66742)

* add interface for stats

* add user service to registry
This commit is contained in:
Eric Leijonmarck 2023-04-18 14:34:40 +01:00 committed by GitHub
parent 75fc678d8a
commit 6b8c77c70c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 22 additions and 0 deletions

View File

@ -3,13 +3,16 @@ package usagestatssvcs
import ( import (
"github.com/grafana/grafana/pkg/registry" "github.com/grafana/grafana/pkg/registry"
"github.com/grafana/grafana/pkg/services/accesscontrol" "github.com/grafana/grafana/pkg/services/accesscontrol"
"github.com/grafana/grafana/pkg/services/user"
) )
func ProvideUsageStatsProvidersRegistry( func ProvideUsageStatsProvidersRegistry(
accesscontrol accesscontrol.Service, accesscontrol accesscontrol.Service,
user user.Service,
) *UsageStatsProvidersRegistry { ) *UsageStatsProvidersRegistry {
return NewUsageStatsProvidersRegistry( return NewUsageStatsProvidersRegistry(
accesscontrol, accesscontrol,
user,
) )
} }

View File

@ -2,9 +2,12 @@ package user
import ( import (
"context" "context"
"github.com/grafana/grafana/pkg/registry"
) )
type Service interface { type Service interface {
registry.ProvidesUsageStats
Create(context.Context, *CreateUserCommand) (*User, error) Create(context.Context, *CreateUserCommand) (*User, error)
CreateServiceAccount(context.Context, *CreateUserCommand) (*User, error) CreateServiceAccount(context.Context, *CreateUserCommand) (*User, error)
Delete(context.Context, *DeleteUserCommand) error Delete(context.Context, *DeleteUserCommand) error

View File

@ -67,6 +67,17 @@ func ProvideService(
return s, nil return s, nil
} }
func (s *Service) GetUsageStats(ctx context.Context) map[string]interface{} {
stats := map[string]interface{}{}
caseInsensitiveLoginVal := 0
if s.cfg.CaseInsensitiveLogin {
caseInsensitiveLoginVal = 1
}
stats["stats.case_insensitive_login.count"] = caseInsensitiveLoginVal
return stats
}
func (s *Service) Usage(ctx context.Context, _ *quota.ScopeParameters) (*quota.Map, error) { func (s *Service) Usage(ctx context.Context, _ *quota.ScopeParameters) (*quota.Map, error) {
u := &quota.Map{} u := &quota.Map{}
if used, err := s.store.Count(ctx); err != nil { if used, err := s.store.Count(ctx); err != nil {

View File

@ -14,6 +14,7 @@ type FakeUserService struct {
ExpectedSearchUsers user.SearchUserQueryResult ExpectedSearchUsers user.SearchUserQueryResult
ExpectedUserProfileDTO *user.UserProfileDTO ExpectedUserProfileDTO *user.UserProfileDTO
ExpectedUserProfileDTOs []*user.UserProfileDTO ExpectedUserProfileDTOs []*user.UserProfileDTO
ExpectedUsageStats map[string]interface{}
GetSignedInUserFn func(ctx context.Context, query *user.GetSignedInUserQuery) (*user.SignedInUser, error) GetSignedInUserFn func(ctx context.Context, query *user.GetSignedInUserQuery) (*user.SignedInUser, error)
CreateFn func(ctx context.Context, cmd *user.CreateUserCommand) (*user.User, error) CreateFn func(ctx context.Context, cmd *user.CreateUserCommand) (*user.User, error)
@ -26,6 +27,10 @@ func NewUserServiceFake() *FakeUserService {
return &FakeUserService{} return &FakeUserService{}
} }
func (f FakeUserService) GetUsageStats(ctx context.Context) map[string]interface{} {
return f.ExpectedUsageStats
}
func (f *FakeUserService) Create(ctx context.Context, cmd *user.CreateUserCommand) (*user.User, error) { func (f *FakeUserService) Create(ctx context.Context, cmd *user.CreateUserCommand) (*user.User, error) {
if f.CreateFn != nil { if f.CreateFn != nil {
return f.CreateFn(ctx, cmd) return f.CreateFn(ctx, cmd)