Include deleted channels on get user channels endpoint (#13877)

Этот коммит содержится в:
Mario de Frutos Dieguez
2020-03-02 22:15:15 +01:00
коммит произвёл GitHub
родитель 8f0bedf9c9
Коммит a43439dd60
6 изменённых файлов: 101 добавлений и 56 удалений

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

@@ -753,7 +753,7 @@ func getChannelsForTeamForUser(c *Context, w http.ResponseWriter, r *http.Reques
return
}
channels, err := c.App.GetChannelsForUser(c.Params.TeamId, c.Params.UserId, false)
channels, err := c.App.GetChannelsForUser(c.Params.TeamId, c.Params.UserId, c.Params.IncludeDeleted)
if err != nil {
c.Err = err
return

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

@@ -776,43 +776,64 @@ func TestGetChannelsForTeamForUser(t *testing.T) {
defer th.TearDown()
Client := th.Client
channels, resp := Client.GetChannelsForTeamForUser(th.BasicTeam.Id, th.BasicUser.Id, "")
CheckNoError(t, resp)
t.Run("get channels for the team for user", func(t *testing.T) {
channels, resp := Client.GetChannelsForTeamForUser(th.BasicTeam.Id, th.BasicUser.Id, false, "")
CheckNoError(t, resp)
found := make([]bool, 3)
for _, c := range channels {
if c.Id == th.BasicChannel.Id {
found[0] = true
} else if c.Id == th.BasicChannel2.Id {
found[1] = true
} else if c.Id == th.BasicPrivateChannel.Id {
found[2] = true
found := make([]bool, 3)
for _, c := range channels {
if c.Id == th.BasicChannel.Id {
found[0] = true
} else if c.Id == th.BasicChannel2.Id {
found[1] = true
} else if c.Id == th.BasicPrivateChannel.Id {
found[2] = true
}
require.True(t, c.TeamId == "" || c.TeamId == th.BasicTeam.Id)
}
require.True(t, c.TeamId == "" || c.TeamId == th.BasicTeam.Id)
}
for _, f := range found {
require.True(t, f, "missing a channel")
}
for _, f := range found {
require.True(t, f, "missing a channel")
}
channels, resp = Client.GetChannelsForTeamForUser(th.BasicTeam.Id, th.BasicUser.Id, false, resp.Etag)
CheckEtag(t, channels, resp)
channels, resp = Client.GetChannelsForTeamForUser(th.BasicTeam.Id, th.BasicUser.Id, resp.Etag)
CheckEtag(t, channels, resp)
_, resp = Client.GetChannelsForTeamForUser(th.BasicTeam.Id, "junk", false, "")
CheckBadRequestStatus(t, resp)
_, resp = Client.GetChannelsForTeamForUser(th.BasicTeam.Id, "junk", "")
CheckBadRequestStatus(t, resp)
_, resp = Client.GetChannelsForTeamForUser("junk", th.BasicUser.Id, false, "")
CheckBadRequestStatus(t, resp)
_, resp = Client.GetChannelsForTeamForUser("junk", th.BasicUser.Id, "")
CheckBadRequestStatus(t, resp)
_, resp = Client.GetChannelsForTeamForUser(th.BasicTeam.Id, th.BasicUser2.Id, false, "")
CheckForbiddenStatus(t, resp)
_, resp = Client.GetChannelsForTeamForUser(th.BasicTeam.Id, th.BasicUser2.Id, "")
CheckForbiddenStatus(t, resp)
_, resp = Client.GetChannelsForTeamForUser(model.NewId(), th.BasicUser.Id, false, "")
CheckForbiddenStatus(t, resp)
_, resp = Client.GetChannelsForTeamForUser(model.NewId(), th.BasicUser.Id, "")
CheckForbiddenStatus(t, resp)
_, resp = th.SystemAdminClient.GetChannelsForTeamForUser(th.BasicTeam.Id, th.BasicUser.Id, false, "")
CheckNoError(t, resp)
})
_, resp = th.SystemAdminClient.GetChannelsForTeamForUser(th.BasicTeam.Id, th.BasicUser.Id, "")
CheckNoError(t, resp)
t.Run("deleted channel could be retrieved using the proper flag", func(t *testing.T) {
testChannel := &model.Channel{
DisplayName: "dn_" + model.NewId(),
Name: GenerateTestChannelName(),
Type: model.CHANNEL_OPEN,
TeamId: th.BasicTeam.Id,
CreatorId: th.BasicUser.Id,
}
th.App.CreateChannel(testChannel, true)
defer th.App.PermanentDeleteChannel(testChannel)
channels, resp := Client.GetChannelsForTeamForUser(th.BasicTeam.Id, th.BasicUser.Id, false, "")
CheckNoError(t, resp)
assert.Equal(t, 6, len(channels))
th.App.DeleteChannel(testChannel, th.BasicUser.Id)
channels, resp = Client.GetChannelsForTeamForUser(th.BasicTeam.Id, th.BasicUser.Id, false, "")
CheckNoError(t, resp)
assert.Equal(t, 5, len(channels))
})
}
func TestGetAllChannels(t *testing.T) {

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

@@ -118,7 +118,7 @@ func testJoinCommands(t *testing.T, alias string) {
rs6 := Client.Must(Client.ExecuteCommand(channel0.Id, "/"+alias+" "+channel3.Name)).(*model.CommandResponse)
require.False(t, strings.HasSuffix(rs6.GotoLocation, "/"+team.Name+"/channels/"+channel3.Name), "should not have joined direct message channel")
c1 := Client.Must(Client.GetChannelsForTeamForUser(th.BasicTeam.Id, th.BasicUser.Id, "")).([]*model.Channel)
c1 := Client.Must(Client.GetChannelsForTeamForUser(th.BasicTeam.Id, th.BasicUser.Id, false, "")).([]*model.Channel)
found := false
for _, c := range c1 {
@@ -261,7 +261,7 @@ func TestLeaveCommands(t *testing.T) {
_, err := Client.ExecuteCommand(channel3.Id, "/leave")
require.NotNil(t, err, "should fail leaving direct channel")
cdata := Client.Must(Client.GetChannelsForTeamForUser(th.BasicTeam.Id, th.BasicUser.Id, "")).([]*model.Channel)
cdata := Client.Must(Client.GetChannelsForTeamForUser(th.BasicTeam.Id, th.BasicUser.Id, false, "")).([]*model.Channel)
found := false
for _, c := range cdata {