Identity: Port folder library to identity.Requester (#76105)
Port folders to identity.Requester
This commit is contained in:
@@ -20,7 +20,6 @@ import (
|
||||
"github.com/grafana/grafana/pkg/services/sqlstore"
|
||||
"github.com/grafana/grafana/pkg/services/sqlstore/migrator"
|
||||
"github.com/grafana/grafana/pkg/services/store/entity"
|
||||
"github.com/grafana/grafana/pkg/services/user"
|
||||
"github.com/grafana/grafana/pkg/setting"
|
||||
"github.com/grafana/grafana/pkg/util"
|
||||
)
|
||||
@@ -410,9 +409,17 @@ func (s *Service) legacyUpdate(ctx context.Context, cmd *folder.UpdateFolderComm
|
||||
if cmd.SignedInUser == nil {
|
||||
return nil, folder.ErrBadRequest.Errorf("missing signed in user")
|
||||
}
|
||||
user := cmd.SignedInUser
|
||||
|
||||
prepareForUpdate(dashFolder, cmd.OrgID, cmd.SignedInUser.UserID, cmd)
|
||||
var userID int64
|
||||
namespace, id := cmd.SignedInUser.GetNamespacedID()
|
||||
if namespace == identity.NamespaceUser || namespace == identity.NamespaceServiceAccount {
|
||||
userID, err = identity.IntIdentifier(namespace, id)
|
||||
if err != nil {
|
||||
logger.Error("failed to parse user ID", "namespace", namespace, "userID", id, "error", err)
|
||||
}
|
||||
}
|
||||
|
||||
prepareForUpdate(dashFolder, cmd.OrgID, userID, cmd)
|
||||
|
||||
dto := &dashboards.SaveDashboardDTO{
|
||||
Dashboard: dashFolder,
|
||||
@@ -445,7 +452,7 @@ func (s *Service) legacyUpdate(ctx context.Context, cmd *folder.UpdateFolderComm
|
||||
UID: dash.UID,
|
||||
OrgID: cmd.OrgID,
|
||||
}); err != nil {
|
||||
logger.Error("failed to publish FolderTitleUpdated event", "folder", foldr.Title, "user", user.UserID, "error", err)
|
||||
logger.Error("failed to publish FolderTitleUpdated event", "folder", foldr.Title, "user", id, "namespace", namespace, "error", err)
|
||||
}
|
||||
}
|
||||
return foldr, nil
|
||||
@@ -537,7 +544,7 @@ func (s *Service) Delete(ctx context.Context, cmd *folder.DeleteFolderCommand) e
|
||||
return err
|
||||
}
|
||||
|
||||
func (s *Service) deleteChildrenInFolder(ctx context.Context, orgID int64, folderUID string, user *user.SignedInUser) error {
|
||||
func (s *Service) deleteChildrenInFolder(ctx context.Context, orgID int64, folderUID string, user identity.Requester) error {
|
||||
for _, v := range s.registry {
|
||||
if err := v.DeleteInFolder(ctx, orgID, folderUID, user); err != nil {
|
||||
return err
|
||||
|
||||
@@ -6,7 +6,6 @@ import (
|
||||
|
||||
"github.com/grafana/grafana/pkg/infra/slugify"
|
||||
"github.com/grafana/grafana/pkg/services/auth/identity"
|
||||
"github.com/grafana/grafana/pkg/services/user"
|
||||
"github.com/grafana/grafana/pkg/setting"
|
||||
"github.com/grafana/grafana/pkg/util/errutil"
|
||||
)
|
||||
@@ -82,7 +81,7 @@ type CreateFolderCommand struct {
|
||||
Description string `json:"description"`
|
||||
ParentUID string `json:"parentUid"`
|
||||
|
||||
SignedInUser *user.SignedInUser `json:"-"`
|
||||
SignedInUser identity.Requester `json:"-"`
|
||||
}
|
||||
|
||||
// UpdateFolderCommand captures the information required by the folder service
|
||||
@@ -101,7 +100,7 @@ type UpdateFolderCommand struct {
|
||||
// Overwrite only used by the legacy folder implementation
|
||||
Overwrite bool `json:"overwrite"`
|
||||
|
||||
SignedInUser *user.SignedInUser `json:"-"`
|
||||
SignedInUser identity.Requester `json:"-"`
|
||||
}
|
||||
|
||||
// MoveFolderCommand captures the information required by the folder service
|
||||
@@ -111,7 +110,7 @@ type MoveFolderCommand struct {
|
||||
NewParentUID string `json:"parentUid"`
|
||||
OrgID int64 `json:"-"`
|
||||
|
||||
SignedInUser *user.SignedInUser `json:"-"`
|
||||
SignedInUser identity.Requester `json:"-"`
|
||||
}
|
||||
|
||||
// DeleteFolderCommand captures the information required by the folder service
|
||||
@@ -121,7 +120,7 @@ type DeleteFolderCommand struct {
|
||||
OrgID int64 `json:"orgId" xorm:"org_id"`
|
||||
ForceDeleteRules bool `json:"forceDeleteRules"`
|
||||
|
||||
SignedInUser *user.SignedInUser `json:"-"`
|
||||
SignedInUser identity.Requester `json:"-"`
|
||||
}
|
||||
|
||||
// GetFolderQuery is used for all folder Get requests. Only one of UID, ID, or
|
||||
@@ -158,15 +157,15 @@ type GetChildrenQuery struct {
|
||||
Limit int64
|
||||
Page int64
|
||||
|
||||
SignedInUser *user.SignedInUser `json:"-"`
|
||||
SignedInUser identity.Requester `json:"-"`
|
||||
}
|
||||
|
||||
type HasEditPermissionInFoldersQuery struct {
|
||||
SignedInUser *user.SignedInUser
|
||||
SignedInUser identity.Requester
|
||||
}
|
||||
|
||||
type HasAdminPermissionInDashboardsOrFoldersQuery struct {
|
||||
SignedInUser *user.SignedInUser
|
||||
SignedInUser identity.Requester
|
||||
}
|
||||
|
||||
// GetDescendantCountsQuery captures the information required by the folder service
|
||||
@@ -175,7 +174,7 @@ type GetDescendantCountsQuery struct {
|
||||
UID *string
|
||||
OrgID int64
|
||||
|
||||
SignedInUser *user.SignedInUser `json:"-"`
|
||||
SignedInUser identity.Requester `json:"-"`
|
||||
}
|
||||
|
||||
type DescendantCounts map[string]int64
|
||||
|
||||
@@ -3,11 +3,11 @@ package folder
|
||||
import (
|
||||
"context"
|
||||
|
||||
"github.com/grafana/grafana/pkg/services/user"
|
||||
"github.com/grafana/grafana/pkg/services/auth/identity"
|
||||
)
|
||||
|
||||
type RegistryService interface {
|
||||
DeleteInFolder(ctx context.Context, orgID int64, folderUID string, user *user.SignedInUser) error
|
||||
CountInFolder(ctx context.Context, orgID int64, folderUID string, user *user.SignedInUser) (int64, error)
|
||||
DeleteInFolder(ctx context.Context, orgID int64, folderUID string, user identity.Requester) error
|
||||
CountInFolder(ctx context.Context, orgID int64, folderUID string, user identity.Requester) (int64, error)
|
||||
Kind() string
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user