MM-33601: Invalidate team member cache when updating a team scheme. (#17384)

* MM-33601: Invalidate team member cache when updating a team scheme.

* MM-33601: Tests cache invalidation.

* MM-33601: Test fix.

Co-authored-by: Mattermod <mattermod@users.noreply.github.com>
Этот коммит содержится в:
Martin Kraft
2021-04-29 15:19:57 -04:00
коммит произвёл GitHub
родитель 51dfa9a54b
Коммит 8bf08988bd
2 изменённых файлов: 36 добавлений и 0 удалений

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

@@ -4,6 +4,7 @@
package api4
import (
"context"
"strings"
"testing"
@@ -760,3 +761,36 @@ func TestDeleteScheme(t *testing.T) {
CheckNotImplementedStatus(t, r6)
})
}
func TestUpdateTeamSchemeWithTeamMembers(t *testing.T) {
th := Setup(t).InitBasic()
defer th.TearDown()
t.Run("Correctly invalidates team member cache", func(t *testing.T) {
th.App.SetPhase2PermissionsMigrationStatus(true)
team := th.CreateTeam()
_, _, err := th.App.AddUserToTeam(team.Id, th.BasicUser.Id, th.SystemAdminUser.Id)
require.Nil(t, err)
teamScheme := th.SetupTeamScheme()
teamUserRole, err := th.App.GetRoleByName(context.Background(), teamScheme.DefaultTeamUserRole)
require.Nil(t, err)
teamUserRole.Permissions = []string{}
_, err = th.App.UpdateRole(teamUserRole)
require.Nil(t, err)
th.LoginBasic()
_, resp := th.Client.CreateChannel(&model.Channel{DisplayName: "Test API Name", Name: GenerateTestChannelName(), Type: model.CHANNEL_OPEN, TeamId: team.Id})
require.Nil(t, resp.Error)
team.SchemeId = &teamScheme.Id
team, err = th.App.UpdateTeamScheme(team)
require.Nil(t, err)
_, resp = th.Client.CreateChannel(&model.Channel{DisplayName: "Test API Name", Name: GenerateTestChannelName(), Type: model.CHANNEL_OPEN, TeamId: team.Id})
require.NotNil(t, resp.Error)
})
}

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

@@ -233,6 +233,8 @@ func (a *App) UpdateTeamScheme(team *model.Team) (*model.Team, *model.AppError)
}
}
a.ClearTeamMembersCache(team.Id)
a.sendTeamEvent(oldTeam, model.WEBSOCKET_EVENT_UPDATE_TEAM_SCHEME)
return oldTeam, nil