Remove org methods from sqlstore interface (#56358)
* Remove org methods from sqlstore interface * Remove some mocks * Fix some tests
This commit is contained in:
@@ -271,8 +271,9 @@ func (ls *Implementation) syncOrgRoles(ctx context.Context, usr *user.User, extU
|
||||
return nil
|
||||
}
|
||||
|
||||
orgsQuery := &models.GetUserOrgListQuery{UserId: usr.ID}
|
||||
if err := ls.SQLStore.GetUserOrgList(ctx, orgsQuery); err != nil {
|
||||
orgsQuery := &org.GetUserOrgListQuery{UserID: usr.ID}
|
||||
result, err := ls.orgService.GetUserOrgList(ctx, orgsQuery)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
@@ -280,15 +281,15 @@ func (ls *Implementation) syncOrgRoles(ctx context.Context, usr *user.User, extU
|
||||
deleteOrgIds := []int64{}
|
||||
|
||||
// update existing org roles
|
||||
for _, orga := range orgsQuery.Result {
|
||||
handledOrgIds[orga.OrgId] = true
|
||||
for _, orga := range result {
|
||||
handledOrgIds[orga.OrgID] = true
|
||||
|
||||
extRole := extUser.OrgRoles[orga.OrgId]
|
||||
extRole := extUser.OrgRoles[orga.OrgID]
|
||||
if extRole == "" {
|
||||
deleteOrgIds = append(deleteOrgIds, orga.OrgId)
|
||||
deleteOrgIds = append(deleteOrgIds, orga.OrgID)
|
||||
} else if extRole != orga.Role {
|
||||
// update role
|
||||
cmd := &org.UpdateOrgUserCommand{OrgID: orga.OrgId, UserID: usr.ID, Role: extRole}
|
||||
cmd := &org.UpdateOrgUserCommand{OrgID: orga.OrgID, UserID: usr.ID, Role: extRole}
|
||||
if err := ls.orgService.UpdateOrgUser(ctx, cmd); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
@@ -14,7 +14,6 @@ import (
|
||||
"github.com/grafana/grafana/pkg/services/org"
|
||||
"github.com/grafana/grafana/pkg/services/org/orgtest"
|
||||
"github.com/grafana/grafana/pkg/services/quota/quotaimpl"
|
||||
"github.com/grafana/grafana/pkg/services/sqlstore/mockstore"
|
||||
"github.com/grafana/grafana/pkg/services/user"
|
||||
"github.com/grafana/grafana/pkg/services/user/usertest"
|
||||
"github.com/stretchr/testify/assert"
|
||||
@@ -26,15 +25,10 @@ func Test_syncOrgRoles_doesNotBreakWhenTryingToRemoveLastOrgAdmin(t *testing.T)
|
||||
externalUser := createSimpleExternalUser()
|
||||
authInfoMock := &logintest.AuthInfoServiceFake{}
|
||||
|
||||
store := &mockstore.SQLStoreMock{
|
||||
ExpectedUserOrgList: createUserOrgDTO(),
|
||||
ExpectedOrgListResponse: createResponseWithOneErrLastOrgAdminItem(),
|
||||
}
|
||||
|
||||
login := Implementation{
|
||||
QuotaService: "aimpl.Service{},
|
||||
AuthInfoService: authInfoMock,
|
||||
SQLStore: store,
|
||||
SQLStore: nil,
|
||||
userService: usertest.NewUserServiceFake(),
|
||||
orgService: orgtest.NewOrgServiceFake(),
|
||||
}
|
||||
@@ -52,18 +46,14 @@ func Test_syncOrgRoles_whenTryingToRemoveLastOrgLogsError(t *testing.T) {
|
||||
|
||||
authInfoMock := &logintest.AuthInfoServiceFake{}
|
||||
|
||||
store := &mockstore.SQLStoreMock{
|
||||
ExpectedUserOrgList: createUserOrgDTO(),
|
||||
ExpectedOrgListResponse: createResponseWithOneErrLastOrgAdminItem(),
|
||||
}
|
||||
|
||||
orgService := orgtest.NewOrgServiceFake()
|
||||
orgService.ExpectedError = models.ErrLastOrgAdmin
|
||||
orgService.ExpectedUserOrgDTO = createUserOrgDTO()
|
||||
orgService.ExpectedOrgListResponse = createResponseWithOneErrLastOrgAdminItem()
|
||||
|
||||
login := Implementation{
|
||||
QuotaService: "aimpl.Service{},
|
||||
AuthInfoService: authInfoMock,
|
||||
SQLStore: store,
|
||||
SQLStore: nil,
|
||||
userService: usertest.NewUserServiceFake(),
|
||||
orgService: orgService,
|
||||
}
|
||||
@@ -132,20 +122,20 @@ func createSimpleUser() user.User {
|
||||
return user
|
||||
}
|
||||
|
||||
func createUserOrgDTO() []*models.UserOrgDTO {
|
||||
users := []*models.UserOrgDTO{
|
||||
func createUserOrgDTO() []*org.UserOrgDTO {
|
||||
users := []*org.UserOrgDTO{
|
||||
{
|
||||
OrgId: 1,
|
||||
OrgID: 1,
|
||||
Name: "Bar",
|
||||
Role: org.RoleViewer,
|
||||
},
|
||||
{
|
||||
OrgId: 10,
|
||||
OrgID: 10,
|
||||
Name: "Foo",
|
||||
Role: org.RoleAdmin,
|
||||
},
|
||||
{
|
||||
OrgId: 11,
|
||||
OrgID: 11,
|
||||
Name: "Stuff",
|
||||
Role: org.RoleViewer,
|
||||
},
|
||||
@@ -164,14 +154,14 @@ func createSimpleExternalUser() models.ExternalUserInfo {
|
||||
return externalUser
|
||||
}
|
||||
|
||||
func createResponseWithOneErrLastOrgAdminItem() mockstore.OrgListResponse {
|
||||
remResp := mockstore.OrgListResponse{
|
||||
func createResponseWithOneErrLastOrgAdminItem() orgtest.OrgListResponse {
|
||||
remResp := orgtest.OrgListResponse{
|
||||
{
|
||||
OrgId: 10,
|
||||
OrgID: 10,
|
||||
Response: models.ErrLastOrgAdmin,
|
||||
},
|
||||
{
|
||||
OrgId: 11,
|
||||
OrgID: 11,
|
||||
Response: nil,
|
||||
},
|
||||
}
|
||||
|
||||
@@ -6,6 +6,11 @@ import (
|
||||
"github.com/grafana/grafana/pkg/services/org"
|
||||
)
|
||||
|
||||
type OrgListResponse []struct {
|
||||
OrgID int64
|
||||
Response error
|
||||
}
|
||||
|
||||
type FakeOrgService struct {
|
||||
ExpectedOrgUserID int64
|
||||
ExpectedError error
|
||||
@@ -14,6 +19,7 @@ type FakeOrgService struct {
|
||||
ExpectedOrg *org.Org
|
||||
ExpectedOrgUsers []*org.OrgUserDTO
|
||||
ExpectedSearchOrgUsersResult *org.SearchOrgUsersQueryResult
|
||||
ExpectedOrgListResponse OrgListResponse
|
||||
}
|
||||
|
||||
func NewOrgServiceFake() *FakeOrgService {
|
||||
@@ -85,7 +91,9 @@ func (f *FakeOrgService) GetOrgUsers(ctx context.Context, query *org.GetOrgUsers
|
||||
}
|
||||
|
||||
func (f *FakeOrgService) RemoveOrgUser(ctx context.Context, cmd *org.RemoveOrgUserCommand) error {
|
||||
return f.ExpectedError
|
||||
testData := f.ExpectedOrgListResponse[0]
|
||||
f.ExpectedOrgListResponse = f.ExpectedOrgListResponse[1:]
|
||||
return testData.Response
|
||||
}
|
||||
|
||||
func (f *FakeOrgService) SearchOrgUsers(ctx context.Context, query *org.SearchOrgUsersQuery) (*org.SearchOrgUsersQueryResult, error) {
|
||||
|
||||
@@ -98,13 +98,6 @@ func (m *SQLStoreMock) GetOrgByNameHandler(ctx context.Context, query *models.Ge
|
||||
return m.ExpectedError
|
||||
}
|
||||
|
||||
func (m *SQLStoreMock) CreateOrgWithMember(name string, userID int64) (models.Org, error) {
|
||||
return *m.ExpectedOrg, nil
|
||||
}
|
||||
func (m *SQLStoreMock) CreateOrg(ctx context.Context, cmd *models.CreateOrgCommand) error {
|
||||
return m.ExpectedError
|
||||
}
|
||||
|
||||
func (m *SQLStoreMock) UpdateOrgAddress(ctx context.Context, cmd *models.UpdateOrgAddressCommand) error {
|
||||
return m.ExpectedError
|
||||
}
|
||||
@@ -135,19 +128,10 @@ func (m *SQLStoreMock) CreateUser(ctx context.Context, cmd user.CreateUserComman
|
||||
return nil, m.ExpectedError
|
||||
}
|
||||
|
||||
func (m *SQLStoreMock) SetUsingOrg(ctx context.Context, cmd *models.SetUsingOrgCommand) error {
|
||||
return m.ExpectedSetUsingOrgError
|
||||
}
|
||||
|
||||
func (m *SQLStoreMock) GetUserProfile(ctx context.Context, query *models.GetUserProfileQuery) error {
|
||||
return m.ExpectedError
|
||||
}
|
||||
|
||||
func (m *SQLStoreMock) GetUserOrgList(ctx context.Context, query *models.GetUserOrgListQuery) error {
|
||||
query.Result = m.ExpectedUserOrgList
|
||||
return m.ExpectedError
|
||||
}
|
||||
|
||||
func (m *SQLStoreMock) GetSignedInUser(ctx context.Context, query *models.GetSignedInUserQuery) error {
|
||||
query.Result = m.ExpectedSignedInUser
|
||||
return m.ExpectedError
|
||||
@@ -313,12 +297,6 @@ func (m *SQLStoreMock) SearchOrgUsers(ctx context.Context, query *models.SearchO
|
||||
return m.ExpectedError
|
||||
}
|
||||
|
||||
func (m *SQLStoreMock) RemoveOrgUser(ctx context.Context, cmd *models.RemoveOrgUserCommand) error {
|
||||
testData := m.ExpectedOrgListResponse[0]
|
||||
m.ExpectedOrgListResponse = m.ExpectedOrgListResponse[1:]
|
||||
return testData.Response
|
||||
}
|
||||
|
||||
func (m *SQLStoreMock) GetDashboardTags(ctx context.Context, query *models.GetDashboardTagsQuery) error {
|
||||
return nil // TODO: Implement
|
||||
}
|
||||
|
||||
@@ -19,13 +19,10 @@ type Store interface {
|
||||
GetDBType() core.DbType
|
||||
GetSystemStats(ctx context.Context, query *models.GetSystemStatsQuery) error
|
||||
GetOrgByName(name string) (*models.Org, error)
|
||||
CreateOrg(ctx context.Context, cmd *models.CreateOrgCommand) error
|
||||
CreateOrgWithMember(name string, userID int64) (models.Org, error)
|
||||
GetOrgById(context.Context, *models.GetOrgByIdQuery) error
|
||||
GetOrgByNameHandler(ctx context.Context, query *models.GetOrgByNameQuery) error
|
||||
CreateUser(ctx context.Context, cmd user.CreateUserCommand) (*user.User, error)
|
||||
GetUserProfile(ctx context.Context, query *models.GetUserProfileQuery) error
|
||||
GetUserOrgList(ctx context.Context, query *models.GetUserOrgListQuery) error
|
||||
GetSignedInUser(ctx context.Context, query *models.GetSignedInUserQuery) error
|
||||
WithDbSession(ctx context.Context, callback DBTransactionFunc) error
|
||||
WithNewDbSession(ctx context.Context, callback DBTransactionFunc) error
|
||||
|
||||
Reference in New Issue
Block a user