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>
Этот коммит содержится в:
коммит произвёл
GitHub
родитель
51dfa9a54b
Коммит
8bf08988bd
@@ -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
|
||||
|
||||
Ссылка в новой задаче
Block a user