mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
fetch user using the userservice with the userid
This commit is contained in:
parent
35b8a6d5a7
commit
23cba78752
1
pkg/build/cmd/exportversion.go
Symbolic link
1
pkg/build/cmd/exportversion.go
Symbolic link
@ -0,0 +1 @@
|
||||
/Users/eleijonmarck/dev/grafana/grafana-enterprise/src/pkg/build/cmd/exportversion.go
|
@ -5,7 +5,6 @@ import (
|
||||
"errors"
|
||||
"time"
|
||||
|
||||
"github.com/grafana/grafana/pkg/apimachinery/identity"
|
||||
"github.com/grafana/grafana/pkg/components/simplejson"
|
||||
"github.com/grafana/grafana/pkg/services/quota"
|
||||
"github.com/grafana/grafana/pkg/services/user"
|
||||
@ -177,9 +176,6 @@ type AddDataSourceCommand struct {
|
||||
ReadOnly bool `json:"-"`
|
||||
EncryptedSecureJsonData map[string][]byte `json:"-"`
|
||||
UpdateSecretFn UpdateSecretFn `json:"-"`
|
||||
|
||||
// Refactor to use User field instead of UserRequester
|
||||
UserRequester identity.Requester
|
||||
}
|
||||
|
||||
// Also acts as api DTO
|
||||
|
@ -31,6 +31,7 @@ import (
|
||||
"github.com/grafana/grafana/pkg/services/quota"
|
||||
"github.com/grafana/grafana/pkg/services/secrets"
|
||||
"github.com/grafana/grafana/pkg/services/secrets/kvstore"
|
||||
"github.com/grafana/grafana/pkg/services/user"
|
||||
"github.com/grafana/grafana/pkg/setting"
|
||||
)
|
||||
|
||||
@ -52,6 +53,7 @@ type Service struct {
|
||||
pluginStore pluginstore.Store
|
||||
pluginClient plugins.Client
|
||||
basePluginContextProvider plugincontext.BasePluginContextProvider
|
||||
userService user.Service
|
||||
|
||||
ptc proxyTransportCache
|
||||
}
|
||||
@ -71,6 +73,7 @@ func ProvideService(
|
||||
features featuremgmt.FeatureToggles, ac accesscontrol.AccessControl, datasourcePermissionsService accesscontrol.DatasourcePermissionsService,
|
||||
quotaService quota.Service, pluginStore pluginstore.Store, pluginClient plugins.Client,
|
||||
basePluginContextProvider plugincontext.BasePluginContextProvider,
|
||||
userService user.Service,
|
||||
) (*Service, error) {
|
||||
dslogger := log.New("datasources")
|
||||
store := &SqlStore{db: db, logger: dslogger, features: features}
|
||||
@ -90,6 +93,7 @@ func ProvideService(
|
||||
pluginStore: pluginStore,
|
||||
pluginClient: pluginClient,
|
||||
basePluginContextProvider: basePluginContextProvider,
|
||||
userService: userService,
|
||||
}
|
||||
|
||||
ac.RegisterScopeAttributeResolver(NewNameScopeResolver(store))
|
||||
@ -291,8 +295,14 @@ func (s *Service) AddDataSource(ctx context.Context, cmd *datasources.AddDataSou
|
||||
{BuiltinRole: "Viewer", Permission: "Query"},
|
||||
{BuiltinRole: "Editor", Permission: "Query"},
|
||||
}
|
||||
if cmd.UserID != 0 || (cmd.UserRequester.IsIdentityType(claims.TypeUser, claims.TypeServiceAccount)) {
|
||||
permissions = append(permissions, accesscontrol.SetResourcePermissionCommand{UserID: cmd.UserID, Permission: "Admin"})
|
||||
if cmd.UserID != 0 {
|
||||
usr, err := s.userService.GetSignedInUser(ctx, &user.GetSignedInUserQuery{UserID: cmd.UserID, OrgID: cmd.OrgID})
|
||||
if err != nil {
|
||||
return fmt.Errorf("failed to get user: %w", err)
|
||||
}
|
||||
if usr.IsIdentityType(claims.TypeUser, claims.TypeServiceAccount) {
|
||||
permissions = append(permissions, accesscontrol.SetResourcePermissionCommand{UserID: cmd.UserID, Permission: "Admin"})
|
||||
}
|
||||
}
|
||||
if _, err = s.permissionsService.SetPermissions(ctx, cmd.OrgID, dataSource.UID, permissions...); err != nil {
|
||||
return err
|
||||
|
Loading…
Reference in New Issue
Block a user