Team.GetTeamMembersForExport migration to Sync by default. (#11559)

Этот коммит содержится в:
Max Vovshin
2019-07-07 13:13:43 +03:00
коммит произвёл Jesús Espino
родитель 96c33948da
Коммит 0b90888e73
5 изменённых файлов: 44 добавлений и 42 удалений

Просмотреть файл

@@ -252,14 +252,12 @@ func (a *App) ExportAllUsers(writer io.Writer) *model.AppError {
func (a *App) buildUserTeamAndChannelMemberships(userId string) (*[]UserTeamImportData, *model.AppError) { func (a *App) buildUserTeamAndChannelMemberships(userId string) (*[]UserTeamImportData, *model.AppError) {
var memberships []UserTeamImportData var memberships []UserTeamImportData
result := <-a.Srv.Store.Team().GetTeamMembersForExport(userId) members, err := a.Srv.Store.Team().GetTeamMembersForExport(userId)
if result.Err != nil { if err != nil {
return nil, result.Err return nil, err
} }
members := result.Data.([]*model.TeamMemberForExport)
for _, member := range members { for _, member := range members {
// Skip deleted. // Skip deleted.
if member.DeleteAt != 0 { if member.DeleteAt != 0 {

Просмотреть файл

@@ -1047,34 +1047,30 @@ func (s SqlTeamStore) GetUserTeamIds(userId string, allowFromCache bool) store.S
}) })
} }
func (s SqlTeamStore) GetTeamMembersForExport(userId string) store.StoreChannel { func (s SqlTeamStore) GetTeamMembersForExport(userId string) ([]*model.TeamMemberForExport, *model.AppError) {
return store.Do(func(result *store.StoreResult) { var members []*model.TeamMemberForExport
var members []*model.TeamMemberForExport _, err := s.GetReplica().Select(&members, `
_, err := s.GetReplica().Select(&members, ` SELECT
SELECT TeamMembers.TeamId,
TeamMembers.TeamId, TeamMembers.UserId,
TeamMembers.UserId, TeamMembers.Roles,
TeamMembers.Roles, TeamMembers.DeleteAt,
TeamMembers.DeleteAt, (TeamMembers.SchemeGuest IS NOT NULL AND TeamMembers.SchemeGuest) as SchemeGuest,
(TeamMembers.SchemeGuest IS NOT NULL AND TeamMembers.SchemeGuest) as SchemeGuest, TeamMembers.SchemeUser,
TeamMembers.SchemeUser, TeamMembers.SchemeAdmin,
TeamMembers.SchemeAdmin, Teams.Name as TeamName
Teams.Name as TeamName FROM
FROM TeamMembers
TeamMembers INNER JOIN
INNER JOIN Teams ON TeamMembers.TeamId = Teams.Id
Teams ON TeamMembers.TeamId = Teams.Id WHERE
WHERE TeamMembers.UserId = :UserId
TeamMembers.UserId = :UserId AND Teams.DeleteAt = 0`,
AND Teams.DeleteAt = 0`, map[string]interface{}{"UserId": userId})
map[string]interface{}{"UserId": userId}) if err != nil {
if err != nil { return nil, model.NewAppError("SqlTeamStore.GetTeamMembersForExport", "store.sql_team.get_members.app_error", nil, "userId="+userId+" "+err.Error(), http.StatusInternalServerError)
result.Err = model.NewAppError("SqlTeamStore.GetTeamMembersForExport", "store.sql_team.get_members.app_error", nil, "userId="+userId+" "+err.Error(), http.StatusInternalServerError) }
return return members, nil
}
result.Data = members
})
} }
func (s SqlTeamStore) UserBelongsToTeams(userId string, teamIds []string) store.StoreChannel { func (s SqlTeamStore) UserBelongsToTeams(userId string, teamIds []string) store.StoreChannel {

Просмотреть файл

@@ -121,7 +121,7 @@ type TeamStore interface {
ClearAllCustomRoleAssignments() StoreChannel ClearAllCustomRoleAssignments() StoreChannel
AnalyticsGetTeamCountForScheme(schemeId string) StoreChannel AnalyticsGetTeamCountForScheme(schemeId string) StoreChannel
GetAllForExportAfter(limit int, afterId string) StoreChannel GetAllForExportAfter(limit int, afterId string) StoreChannel
GetTeamMembersForExport(userId string) StoreChannel GetTeamMembersForExport(userId string) ([]*model.TeamMemberForExport, *model.AppError)
UserBelongsToTeams(userId string, teamIds []string) StoreChannel UserBelongsToTeams(userId string, teamIds []string) StoreChannel
GetUserTeamIds(userId string, allowFromCache bool) StoreChannel GetUserTeamIds(userId string, allowFromCache bool) StoreChannel
InvalidateAllTeamIdsForUser(userId string) InvalidateAllTeamIdsForUser(userId string)

Просмотреть файл

@@ -445,19 +445,28 @@ func (_m *TeamStore) GetMembersByIds(teamId string, userIds []string, restrictio
} }
// GetTeamMembersForExport provides a mock function with given fields: userId // GetTeamMembersForExport provides a mock function with given fields: userId
func (_m *TeamStore) GetTeamMembersForExport(userId string) store.StoreChannel { func (_m *TeamStore) GetTeamMembersForExport(userId string) ([]*model.TeamMemberForExport, *model.AppError) {
ret := _m.Called(userId) ret := _m.Called(userId)
var r0 store.StoreChannel var r0 []*model.TeamMemberForExport
if rf, ok := ret.Get(0).(func(string) store.StoreChannel); ok { if rf, ok := ret.Get(0).(func(string) []*model.TeamMemberForExport); ok {
r0 = rf(userId) r0 = rf(userId)
} else { } else {
if ret.Get(0) != nil { if ret.Get(0) != nil {
r0 = ret.Get(0).(store.StoreChannel) r0 = ret.Get(0).([]*model.TeamMemberForExport)
} }
} }
return r0 var r1 *model.AppError
if rf, ok := ret.Get(1).(func(string) *model.AppError); ok {
r1 = rf(userId)
} else {
if ret.Get(1) != nil {
r1 = ret.Get(1).(*model.AppError)
}
}
return r0, r1
} }
// GetTeamsByScheme provides a mock function with given fields: schemeId, offset, limit // GetTeamsByScheme provides a mock function with given fields: schemeId, offset, limit

Просмотреть файл

@@ -1652,10 +1652,9 @@ func testTeamStoreGetTeamMembersForExport(t *testing.T, ss store.Store) {
m2 := &model.TeamMember{TeamId: t1.Id, UserId: u2.Id} m2 := &model.TeamMember{TeamId: t1.Id, UserId: u2.Id}
store.Must(ss.Team().SaveMember(m2, -1)) store.Must(ss.Team().SaveMember(m2, -1))
r1 := <-ss.Team().GetTeamMembersForExport(u1.Id) d1, err := ss.Team().GetTeamMembersForExport(u1.Id)
assert.Nil(t, r1.Err) assert.Nil(t, err)
d1 := r1.Data.([]*model.TeamMemberForExport)
assert.Len(t, d1, 1) assert.Len(t, d1, 1)
tmfe1 := d1[0] tmfe1 := d1[0]