[MM-16772] Migrate Team.RemoveMember to Sync by default (#11565)

* Migrate Team.RemoveMember to Sync by default

* Fixed typo in user_store.go

* Resolved merge conflicts in storetest/user_store.go
Этот коммит содержится в:
Allan Guwatudde
2019-07-09 01:40:02 +03:00
коммит произвёл Lev
родитель 902521f7d3
Коммит 32616a989b
6 изменённых файлов: 37 добавлений и 35 удалений

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

@@ -764,13 +764,12 @@ func (s SqlTeamStore) GetChannelUnreadsForTeam(teamId, userId string) ([]*model.
return channels, nil return channels, nil
} }
func (s SqlTeamStore) RemoveMember(teamId string, userId string) store.StoreChannel { func (s SqlTeamStore) RemoveMember(teamId string, userId string) *model.AppError {
return store.Do(func(result *store.StoreResult) { _, err := s.GetMaster().Exec("DELETE FROM TeamMembers WHERE TeamId = :TeamId AND UserId = :UserId", map[string]interface{}{"TeamId": teamId, "UserId": userId})
_, err := s.GetMaster().Exec("DELETE FROM TeamMembers WHERE TeamId = :TeamId AND UserId = :UserId", map[string]interface{}{"TeamId": teamId, "UserId": userId}) if err != nil {
if err != nil { return model.NewAppError("SqlTeamStore.RemoveMember", "store.sql_team.remove_member.app_error", nil, "team_id="+teamId+", user_id="+userId+", "+err.Error(), http.StatusInternalServerError)
result.Err = model.NewAppError("SqlTeamStore.RemoveMember", "store.sql_team.remove_member.app_error", nil, "team_id="+teamId+", user_id="+userId+", "+err.Error(), http.StatusInternalServerError) }
} return nil
})
} }
func (s SqlTeamStore) RemoveAllMembersByTeam(teamId string) store.StoreChannel { func (s SqlTeamStore) RemoveAllMembersByTeam(teamId string) store.StoreChannel {

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

@@ -111,7 +111,7 @@ type TeamStore interface {
GetTeamsForUserWithPagination(userId string, page, perPage int) ([]*model.TeamMember, *model.AppError) GetTeamsForUserWithPagination(userId string, page, perPage int) ([]*model.TeamMember, *model.AppError)
GetChannelUnreadsForAllTeams(excludeTeamId, userId string) ([]*model.ChannelUnread, *model.AppError) GetChannelUnreadsForAllTeams(excludeTeamId, userId string) ([]*model.ChannelUnread, *model.AppError)
GetChannelUnreadsForTeam(teamId, userId string) ([]*model.ChannelUnread, *model.AppError) GetChannelUnreadsForTeam(teamId, userId string) ([]*model.ChannelUnread, *model.AppError)
RemoveMember(teamId string, userId string) StoreChannel RemoveMember(teamId string, userId string) *model.AppError
RemoveAllMembersByTeam(teamId string) StoreChannel RemoveAllMembersByTeam(teamId string) StoreChannel
RemoveAllMembersByUser(userId string) *model.AppError RemoveAllMembersByUser(userId string) *model.AppError
UpdateLastTeamIconUpdate(teamId string, curTime int64) *model.AppError UpdateLastTeamIconUpdate(teamId string, curTime int64) *model.AppError

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

@@ -1291,12 +1291,12 @@ func testTeamMemberRemovals(t *testing.T, ss store.Store) {
require.Len(t, teamMembers, 3) require.Len(t, teamMembers, 3)
// add users back to groups // add users back to groups
res := <-ss.Team().RemoveMember(data.ConstrainedTeam.Id, data.UserA.Id) res := ss.Team().RemoveMember(data.ConstrainedTeam.Id, data.UserA.Id)
require.Nil(t, res.Err) require.Nil(t, res)
res = <-ss.Team().RemoveMember(data.ConstrainedTeam.Id, data.UserB.Id) res = ss.Team().RemoveMember(data.ConstrainedTeam.Id, data.UserB.Id)
require.Nil(t, res.Err) require.Nil(t, res)
res = <-ss.Team().RemoveMember(data.ConstrainedTeam.Id, data.UserC.Id) res = ss.Team().RemoveMember(data.ConstrainedTeam.Id, data.UserC.Id)
require.Nil(t, res.Err) require.Nil(t, res)
err = ss.Channel().RemoveMember(data.ConstrainedChannel.Id, data.UserA.Id) err = ss.Channel().RemoveMember(data.ConstrainedChannel.Id, data.UserA.Id)
require.Nil(t, err) require.Nil(t, err)
err = ss.Channel().RemoveMember(data.ConstrainedChannel.Id, data.UserB.Id) err = ss.Channel().RemoveMember(data.ConstrainedChannel.Id, data.UserB.Id)
@@ -1366,12 +1366,12 @@ func testChannelMemberRemovals(t *testing.T, ss store.Store) {
require.Len(t, channelMembers, 3) require.Len(t, channelMembers, 3)
// add users back to groups // add users back to groups
res := <-ss.Team().RemoveMember(data.ConstrainedTeam.Id, data.UserA.Id) res := ss.Team().RemoveMember(data.ConstrainedTeam.Id, data.UserA.Id)
require.Nil(t, res.Err) require.Nil(t, res)
res = <-ss.Team().RemoveMember(data.ConstrainedTeam.Id, data.UserB.Id) res = ss.Team().RemoveMember(data.ConstrainedTeam.Id, data.UserB.Id)
require.Nil(t, res.Err) require.Nil(t, res)
res = <-ss.Team().RemoveMember(data.ConstrainedTeam.Id, data.UserC.Id) res = ss.Team().RemoveMember(data.ConstrainedTeam.Id, data.UserC.Id)
require.Nil(t, res.Err) require.Nil(t, res)
err = ss.Channel().RemoveMember(data.ConstrainedChannel.Id, data.UserA.Id) err = ss.Channel().RemoveMember(data.ConstrainedChannel.Id, data.UserA.Id)
require.Nil(t, err) require.Nil(t, err)
err = ss.Channel().RemoveMember(data.ConstrainedChannel.Id, data.UserB.Id) err = ss.Channel().RemoveMember(data.ConstrainedChannel.Id, data.UserB.Id)

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

@@ -696,15 +696,15 @@ func (_m *TeamStore) RemoveAllMembersByUser(userId string) *model.AppError {
} }
// RemoveMember provides a mock function with given fields: teamId, userId // RemoveMember provides a mock function with given fields: teamId, userId
func (_m *TeamStore) RemoveMember(teamId string, userId string) store.StoreChannel { func (_m *TeamStore) RemoveMember(teamId string, userId string) *model.AppError {
ret := _m.Called(teamId, userId) ret := _m.Called(teamId, userId)
var r0 store.StoreChannel var r0 *model.AppError
if rf, ok := ret.Get(0).(func(string, string) store.StoreChannel); ok { if rf, ok := ret.Get(0).(func(string, string) *model.AppError); ok {
r0 = rf(teamId, userId) r0 = rf(teamId, userId)
} else { } else {
if ret.Get(0) != nil { if ret.Get(0) != nil {
r0 = ret.Get(0).(store.StoreChannel) r0 = ret.Get(0).(*model.AppError)
} }
} }

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

@@ -802,8 +802,8 @@ func testTeamMembers(t *testing.T, ss store.Store) {
require.Equal(t, m1.TeamId, ms[0].TeamId) require.Equal(t, m1.TeamId, ms[0].TeamId)
} }
if r1 := <-ss.Team().RemoveMember(teamId1, m1.UserId); r1.Err != nil { if err := ss.Team().RemoveMember(teamId1, m1.UserId); err != nil {
t.Fatal(r1.Err) t.Fatal(err)
} }
if ms, err := ss.Team().GetMembers(teamId1, 0, 100, nil); err != nil { if ms, err := ss.Team().GetMembers(teamId1, 0, 100, nil); err != nil {
@@ -872,8 +872,8 @@ func testTeamMembersWithPagination(t *testing.T, ss store.Store) {
require.Len(t, ms, 1) require.Len(t, ms, 1)
require.Equal(t, m1.TeamId, ms[0].TeamId) require.Equal(t, m1.TeamId, ms[0].TeamId)
r1 = <-ss.Team().RemoveMember(teamId1, m1.UserId) e := ss.Team().RemoveMember(teamId1, m1.UserId)
require.Nil(t, r1.Err) require.Nil(t, e)
ms, err := ss.Team().GetMembers(teamId1, 0, 100, nil) ms, err := ss.Team().GetMembers(teamId1, 0, 100, nil)
require.Nil(t, err) require.Nil(t, err)
@@ -937,7 +937,7 @@ func testSaveTeamMemberMaxMembers(t *testing.T, ss store.Store) {
}, maxUsersPerTeam)) }, maxUsersPerTeam))
defer func(userId string) { defer func(userId string) {
<-ss.Team().RemoveMember(team.Id, userId) ss.Team().RemoveMember(team.Id, userId)
}(userIds[i]) }(userIds[i])
} }
@@ -989,7 +989,7 @@ func testSaveTeamMemberMaxMembers(t *testing.T, ss store.Store) {
t.Fatal("should've been able to save new member after deleting one", result.Err) t.Fatal("should've been able to save new member after deleting one", result.Err)
} else { } else {
defer func(userId string) { defer func(userId string) {
<-ss.Team().RemoveMember(team.Id, userId) ss.Team().RemoveMember(team.Id, userId)
}(newUserId) }(newUserId)
} }
@@ -1016,7 +1016,7 @@ func testSaveTeamMemberMaxMembers(t *testing.T, ss store.Store) {
t.Fatal("should've been able to save new member after deleting one", result.Err) t.Fatal("should've been able to save new member after deleting one", result.Err)
} else { } else {
defer func(userId string) { defer func(userId string) {
<-ss.Team().RemoveMember(team.Id, userId) ss.Team().RemoveMember(team.Id, userId)
}(newUserId2) }(newUserId2)
} }
} }

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

@@ -3477,8 +3477,11 @@ func testUserStoreGetProfilesNotInTeam(t *testing.T, ss store.Store) {
// Ensure update at timestamp changes // Ensure update at timestamp changes
time.Sleep(time.Millisecond * 10) time.Sleep(time.Millisecond * 10)
store.Must(ss.Team().RemoveMember(teamId, u1.Id)) e := ss.Team().RemoveMember(teamId, u1.Id)
store.Must(ss.Team().RemoveMember(teamId, u2.Id)) require.Nil(t, e)
e = ss.Team().RemoveMember(teamId, u2.Id)
require.Nil(t, e)
u1.UpdateAt, err = ss.User().UpdateUpdateAt(u1.Id) u1.UpdateAt, err = ss.User().UpdateUpdateAt(u1.Id)
require.Nil(t, err) require.Nil(t, err)
u2.UpdateAt, err = ss.User().UpdateUpdateAt(u2.Id) u2.UpdateAt, err = ss.User().UpdateUpdateAt(u2.Id)
@@ -3919,8 +3922,8 @@ func testUserStoreGetTeamGroupUsers(t *testing.T, ss store.Store) {
requireNUsers(2) requireNUsers(2)
// delete team membership of allowed user // delete team membership of allowed user
res = <-ss.Team().RemoveMember(team.Id, userGroupA.Id) err = ss.Team().RemoveMember(team.Id, userGroupA.Id)
require.Nil(t, res.Err) require.Nil(t, err)
// ensure removed allowed member still returned by query // ensure removed allowed member still returned by query
requireNUsers(2) requireNUsers(2)