[AI assisted]: MM-62295: Search and index archived channels as well. (#29796)
We add a new field delete_at in the channels template. This field is then searched in the SearchChannels function. Also added tests to verify that archived channels are searched properly, and also indexed correctly. https://mattermost.atlassian.net/browse/MM-62295 ```release-note - Now archived channels are searchable with ES/OS if TeamSettings.ExperimentalViewArchivedChannels is enabled. - If there are old channels which were archived before a bulk index was run, users would need to purge indexes, and do bulk index again. Because those old archived channels are removed from the index when a bulk index is run. ``` Co-authored-by: Mattermost Build <build@mattermost.com>
Этот коммит содержится в:
коммит произвёл
GitHub
родитель
57f13549d7
Коммит
afbd9d64c3
@@ -770,20 +770,40 @@ func (c *CommonTestSuite) TestSearchChannels() {
|
||||
|
||||
c.NoError(c.RefreshIndexFn())
|
||||
|
||||
// Private channels should be returned for right user.
|
||||
ids, appErr := c.ESImpl.SearchChannels("", c.TH.BasicUser.Id, "Channel", false)
|
||||
for _, includeDeleted := range []bool{true, false} {
|
||||
// Private channels should be returned for right user.
|
||||
ids, appErr := c.ESImpl.SearchChannels("", c.TH.BasicUser.Id, "Channel", false, includeDeleted)
|
||||
c.Nil(appErr)
|
||||
c.Len(ids, 2)
|
||||
|
||||
// No private channels if user is guest
|
||||
ids, appErr = c.ESImpl.SearchChannels("", c.TH.BasicUser.Id, "Channel", true, includeDeleted)
|
||||
c.Nil(appErr)
|
||||
c.Len(ids, 1)
|
||||
c.Equal(channel.Id, ids[0])
|
||||
|
||||
// No Private channels should be returned for wrong user.
|
||||
ids, appErr = c.ESImpl.SearchChannels("", "otheruser", "Channel", false, includeDeleted)
|
||||
c.Nil(appErr)
|
||||
c.Len(ids, 1)
|
||||
c.Equal(channel.Id, ids[0])
|
||||
}
|
||||
|
||||
// Adding a deleted channel
|
||||
channelDel := createChannel(c.TH.BasicTeam.Id, "channelD", "Channel Open- Deleted", model.ChannelTypeOpen)
|
||||
channelDel.DeleteAt = 123
|
||||
c.Nil(c.ESImpl.IndexChannel(c.TH.Context, channelDel, []string{}, []string{c.TH.BasicUser.Id, "otheruser"}))
|
||||
c.NoError(c.RefreshIndexFn())
|
||||
|
||||
ids, appErr := c.ESImpl.SearchChannels("", c.TH.BasicUser.Id, "Channel", false, false)
|
||||
c.Nil(appErr)
|
||||
c.Len(ids, 2)
|
||||
|
||||
// No private channels if user is guest
|
||||
ids, appErr = c.ESImpl.SearchChannels("", c.TH.BasicUser.Id, "Channel", true)
|
||||
ids, appErr = c.ESImpl.SearchChannels("", c.TH.BasicUser.Id, "Channel", false, true)
|
||||
c.Nil(appErr)
|
||||
c.Len(ids, 1)
|
||||
c.Equal(channel.Id, ids[0])
|
||||
c.Len(ids, 3)
|
||||
|
||||
// No Private channels should be returned for wrong user.
|
||||
ids, appErr = c.ESImpl.SearchChannels("", "otheruser", "Channel", false)
|
||||
ids, appErr = c.ESImpl.SearchChannels("", c.TH.BasicUser.Id, "Deleted", false, true)
|
||||
c.Nil(appErr)
|
||||
c.Len(ids, 1)
|
||||
c.Equal(channel.Id, ids[0])
|
||||
}
|
||||
|
||||
Ссылка в новой задаче
Block a user