Migrate "Channel.RemoveMember" to Sync by default (#11245)
* Migrate Channel.RemoveMember to Sync by default * Address comments
Этот коммит содержится в:
коммит произвёл
Joram Wilander
родитель
3c8d772bf5
Коммит
6555bea117
@@ -1616,8 +1616,8 @@ func (a *App) removeUserFromChannel(userIdToRemove string, removerUserId string,
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
if cmresult := <-a.Srv.Store.Channel().RemoveMember(channel.Id, userIdToRemove); cmresult.Err != nil {
|
if err := a.Srv.Store.Channel().RemoveMember(channel.Id, userIdToRemove); err != nil {
|
||||||
return cmresult.Err
|
return err
|
||||||
}
|
}
|
||||||
if cmhResult := <-a.Srv.Store.ChannelMemberHistory().LogLeaveEvent(userIdToRemove, channel.Id, model.GetMillis()); cmhResult.Err != nil {
|
if cmhResult := <-a.Srv.Store.ChannelMemberHistory().LogLeaveEvent(userIdToRemove, channel.Id, model.GetMillis()); cmhResult.Err != nil {
|
||||||
return cmhResult.Err
|
return cmhResult.Err
|
||||||
|
|||||||
@@ -840,8 +840,8 @@ func (a *App) LeaveTeam(team *model.Team, user *model.User, requestorId string)
|
|||||||
for _, channel := range *channelList {
|
for _, channel := range *channelList {
|
||||||
if !channel.IsGroupOrDirect() {
|
if !channel.IsGroupOrDirect() {
|
||||||
a.InvalidateCacheForChannelMembers(channel.Id)
|
a.InvalidateCacheForChannelMembers(channel.Id)
|
||||||
if result := <-a.Srv.Store.Channel().RemoveMember(channel.Id, user.Id); result.Err != nil {
|
if err := a.Srv.Store.Channel().RemoveMember(channel.Id, user.Id); err != nil {
|
||||||
return result.Err
|
return err
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1685,13 +1685,12 @@ func (s SqlChannelStore) GetMemberCount(channelId string, allowFromCache bool) s
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s SqlChannelStore) RemoveMember(channelId string, userId string) store.StoreChannel {
|
func (s SqlChannelStore) RemoveMember(channelId string, userId string) *model.AppError {
|
||||||
return store.Do(func(result *store.StoreResult) {
|
_, err := s.GetMaster().Exec("DELETE FROM ChannelMembers WHERE ChannelId = :ChannelId AND UserId = :UserId", map[string]interface{}{"ChannelId": channelId, "UserId": userId})
|
||||||
_, err := s.GetMaster().Exec("DELETE FROM ChannelMembers WHERE ChannelId = :ChannelId AND UserId = :UserId", map[string]interface{}{"ChannelId": channelId, "UserId": userId})
|
if err != nil {
|
||||||
if err != nil {
|
return model.NewAppError("SqlChannelStore.RemoveMember", "store.sql_channel.remove_member.app_error", nil, "channel_id="+channelId+", user_id="+userId+", "+err.Error(), http.StatusInternalServerError)
|
||||||
result.Err = model.NewAppError("SqlChannelStore.RemoveMember", "store.sql_channel.remove_member.app_error", nil, "channel_id="+channelId+", user_id="+userId+", "+err.Error(), http.StatusInternalServerError)
|
}
|
||||||
}
|
return nil
|
||||||
})
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s SqlChannelStore) RemoveAllDeactivatedMembers(channelId string) store.StoreChannel {
|
func (s SqlChannelStore) RemoveAllDeactivatedMembers(channelId string) store.StoreChannel {
|
||||||
|
|||||||
@@ -172,7 +172,7 @@ type ChannelStore interface {
|
|||||||
GetMemberCountFromCache(channelId string) int64
|
GetMemberCountFromCache(channelId string) int64
|
||||||
GetMemberCount(channelId string, allowFromCache bool) StoreChannel
|
GetMemberCount(channelId string, allowFromCache bool) StoreChannel
|
||||||
GetPinnedPosts(channelId string) StoreChannel
|
GetPinnedPosts(channelId string) StoreChannel
|
||||||
RemoveMember(channelId string, userId string) StoreChannel
|
RemoveMember(channelId string, userId string) *model.AppError
|
||||||
PermanentDeleteMembersByUser(userId string) StoreChannel
|
PermanentDeleteMembersByUser(userId string) StoreChannel
|
||||||
PermanentDeleteMembersByChannel(channelId string) *model.AppError
|
PermanentDeleteMembersByChannel(channelId string) *model.AppError
|
||||||
UpdateLastViewedAt(channelIds []string, userId string) StoreChannel
|
UpdateLastViewedAt(channelIds []string, userId string) StoreChannel
|
||||||
|
|||||||
@@ -910,7 +910,8 @@ func testChannelMemberStore(t *testing.T, ss store.Store) {
|
|||||||
t.Fatal("should have saved 2 members")
|
t.Fatal("should have saved 2 members")
|
||||||
}
|
}
|
||||||
|
|
||||||
store.Must(ss.Channel().RemoveMember(o2.ChannelId, o2.UserId))
|
err = ss.Channel().RemoveMember(o2.ChannelId, o2.UserId)
|
||||||
|
require.Nil(t, err)
|
||||||
|
|
||||||
count = (<-ss.Channel().GetMemberCount(o1.ChannelId, false)).Data.(int64)
|
count = (<-ss.Channel().GetMemberCount(o1.ChannelId, false)).Data.(int64)
|
||||||
if count != 1 {
|
if count != 1 {
|
||||||
|
|||||||
@@ -1324,12 +1324,12 @@ func testTeamMemberRemovals(t *testing.T, ss store.Store) {
|
|||||||
require.Nil(t, res.Err)
|
require.Nil(t, res.Err)
|
||||||
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)
|
||||||
res = <-ss.Channel().RemoveMember(data.ConstrainedChannel.Id, data.UserA.Id)
|
err = ss.Channel().RemoveMember(data.ConstrainedChannel.Id, data.UserA.Id)
|
||||||
require.Nil(t, res.Err)
|
require.Nil(t, err)
|
||||||
res = <-ss.Channel().RemoveMember(data.ConstrainedChannel.Id, data.UserB.Id)
|
err = ss.Channel().RemoveMember(data.ConstrainedChannel.Id, data.UserB.Id)
|
||||||
require.Nil(t, res.Err)
|
require.Nil(t, err)
|
||||||
res = <-ss.Channel().RemoveMember(data.ConstrainedChannel.Id, data.UserC.Id)
|
err = ss.Channel().RemoveMember(data.ConstrainedChannel.Id, data.UserC.Id)
|
||||||
require.Nil(t, res.Err)
|
require.Nil(t, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
func testChannelMemberRemovals(t *testing.T, ss store.Store) {
|
func testChannelMemberRemovals(t *testing.T, ss store.Store) {
|
||||||
@@ -1399,12 +1399,12 @@ func testChannelMemberRemovals(t *testing.T, ss store.Store) {
|
|||||||
require.Nil(t, res.Err)
|
require.Nil(t, res.Err)
|
||||||
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)
|
||||||
res = <-ss.Channel().RemoveMember(data.ConstrainedChannel.Id, data.UserA.Id)
|
err = ss.Channel().RemoveMember(data.ConstrainedChannel.Id, data.UserA.Id)
|
||||||
require.Nil(t, res.Err)
|
require.Nil(t, err)
|
||||||
res = <-ss.Channel().RemoveMember(data.ConstrainedChannel.Id, data.UserB.Id)
|
err = ss.Channel().RemoveMember(data.ConstrainedChannel.Id, data.UserB.Id)
|
||||||
require.Nil(t, res.Err)
|
require.Nil(t, err)
|
||||||
res = <-ss.Channel().RemoveMember(data.ConstrainedChannel.Id, data.UserC.Id)
|
err = ss.Channel().RemoveMember(data.ConstrainedChannel.Id, data.UserC.Id)
|
||||||
require.Nil(t, res.Err)
|
require.Nil(t, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
type removalsData struct {
|
type removalsData struct {
|
||||||
|
|||||||
@@ -996,15 +996,15 @@ func (_m *ChannelStore) RemoveAllDeactivatedMembers(channelId string) store.Stor
|
|||||||
}
|
}
|
||||||
|
|
||||||
// RemoveMember provides a mock function with given fields: channelId, userId
|
// RemoveMember provides a mock function with given fields: channelId, userId
|
||||||
func (_m *ChannelStore) RemoveMember(channelId string, userId string) store.StoreChannel {
|
func (_m *ChannelStore) RemoveMember(channelId string, userId string) *model.AppError {
|
||||||
ret := _m.Called(channelId, userId)
|
ret := _m.Called(channelId, 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(channelId, userId)
|
r0 = rf(channelId, 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)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -3825,8 +3825,8 @@ func testUserStoreGetChannelGroupUsers(t *testing.T, ss store.Store) {
|
|||||||
requireNUsers(2)
|
requireNUsers(2)
|
||||||
|
|
||||||
// delete team membership of allowed user
|
// delete team membership of allowed user
|
||||||
res = <-ss.Channel().RemoveMember(channel.Id, userGroupA.Id)
|
err = ss.Channel().RemoveMember(channel.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)
|
||||||
|
|||||||
Ссылка в новой задаче
Block a user