From 15a9a7ad2f1b64dbd993ffba536644c381af9336 Mon Sep 17 00:00:00 2001 From: Kyriakos Z <3829551+koox00@users.noreply.github.com> Date: Thu, 7 Apr 2022 20:27:05 +0300 Subject: [PATCH] MM-42725: exclude channels from teams user has left (#19939) Automatic Merge --- store/sqlstore/channel_store.go | 5 ++++- store/storetest/channel_store.go | 38 ++++++++++++++++++++++++++++++++ 2 files changed, 42 insertions(+), 1 deletion(-) diff --git a/store/sqlstore/channel_store.go b/store/sqlstore/channel_store.go index 7e7d96caf2..f1e74732d4 100644 --- a/store/sqlstore/channel_store.go +++ b/store/sqlstore/channel_store.go @@ -2907,7 +2907,10 @@ func (s SqlChannelStore) Autocomplete(userID, term string, includeDeleted bool) OrderBy("c.DisplayName") if !includeDeleted { - query = query.Where(sq.Eq{"c.DeleteAt": 0}) + query = query.Where(sq.And{ + sq.Eq{"c.DeleteAt": 0}, + sq.Eq{"tm.DeleteAt": 0}, + }) } searchClause := s.searchClause(term) if searchClause != nil { diff --git a/store/storetest/channel_store.go b/store/storetest/channel_store.go index 52d116dd7c..ed999b3b2b 100644 --- a/store/storetest/channel_store.go +++ b/store/storetest/channel_store.go @@ -5903,6 +5903,44 @@ func testAutocomplete(t *testing.T, ss store.Store) { _, err = ss.Channel().SaveMember(m5) require.NoError(t, err) + t3 := &model.Team{ + DisplayName: "t3", + Name: NewTestId(), + Email: MakeEmail(), + Type: model.TeamOpen, + } + t3, err = ss.Team().Save(t3) + require.NoError(t, err) + leftTeamId := t3.Id + + o5 := model.Channel{ + TeamId: leftTeamId, + DisplayName: "ChannelA3", + Name: NewTestId(), + Type: model.ChannelTypeOpen, + } + _, err = ss.Channel().Save(&o5, -1) + require.NoError(t, err) + + m6 := model.ChannelMember{ + ChannelId: o5.Id, + UserId: m1.UserId, + NotifyProps: model.GetDefaultChannelNotifyProps(), + } + _, err = ss.Channel().SaveMember(&m6) + require.NoError(t, err) + + tm5 := &model.TeamMember{TeamId: leftTeamId, UserId: m1.UserId} + _, err = ss.Team().SaveMember(tm5, -1) + require.NoError(t, err) + + err = ss.Channel().RemoveMember(o5.Id, m1.UserId) + require.NoError(t, err) + tm5.Roles = "" + tm5.DeleteAt = model.GetMillis() + _, err = ss.Team().UpdateMember(tm5) + require.NoError(t, err) + testCases := []struct { Description string UserID string