MM-25595 - Edits to bot username and display name fail to save (#14699)
* invalidate the user profile cache bc we know it's now outdated * invalidate cache when updating user roles; test * tests fix -- experimental * fixing linter errors * revert to original solution Co-authored-by: mattermod <mattermod@users.noreply.github.com>
Этот коммит содержится в:
коммит произвёл
GitHub
родитель
19e5afd607
Коммит
7bba8db65f
@@ -220,6 +220,22 @@ func TestPatchBot(t *testing.T) {
|
|||||||
require.Equal(t, *botPatch.DisplayName, patchedBot.DisplayName)
|
require.Equal(t, *botPatch.DisplayName, patchedBot.DisplayName)
|
||||||
require.Equal(t, *botPatch.Description, patchedBot.Description)
|
require.Equal(t, *botPatch.Description, patchedBot.Description)
|
||||||
require.Equal(t, th.SystemAdminUser.Id, patchedBot.OwnerId)
|
require.Equal(t, th.SystemAdminUser.Id, patchedBot.OwnerId)
|
||||||
|
|
||||||
|
// Continue through the bot update process (call UpdateUserRoles), then
|
||||||
|
// get the bot, to make sure the patched bot was correctly saved.
|
||||||
|
th.AddPermissionToRole(model.PERMISSION_READ_BOTS.Id, model.TEAM_USER_ROLE_ID)
|
||||||
|
th.AddPermissionToRole(model.PERMISSION_READ_OTHERS_BOTS.Id, model.TEAM_USER_ROLE_ID)
|
||||||
|
th.AddPermissionToRole(model.PERMISSION_MANAGE_ROLES.Id, model.TEAM_USER_ROLE_ID)
|
||||||
|
th.App.UpdateUserRoles(th.BasicUser.Id, model.TEAM_USER_ROLE_ID, false)
|
||||||
|
|
||||||
|
success, resp := th.Client.UpdateUserRoles(createdBot.UserId, model.SYSTEM_USER_ROLE_ID)
|
||||||
|
CheckOKStatus(t, resp)
|
||||||
|
require.True(t, success)
|
||||||
|
|
||||||
|
bots, resp := th.Client.GetBots(0, 2, "")
|
||||||
|
CheckOKStatus(t, resp)
|
||||||
|
require.Len(t, bots, 1)
|
||||||
|
require.Equal(t, []*model.Bot{patchedBot}, bots)
|
||||||
})
|
})
|
||||||
|
|
||||||
t.Run("patch my bot without permission", func(t *testing.T) {
|
t.Run("patch my bot without permission", func(t *testing.T) {
|
||||||
|
|||||||
@@ -89,6 +89,7 @@ func (a *App) PatchBot(botUserId string, botPatch *model.BotPatch) (*model.Bot,
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
a.InvalidateCacheForUser(user.Id)
|
||||||
|
|
||||||
ruser := userUpdate.New
|
ruser := userUpdate.New
|
||||||
a.sendUpdatedUserEvent(*ruser)
|
a.sendUpdatedUserEvent(*ruser)
|
||||||
|
|||||||
@@ -1395,8 +1395,8 @@ func (a *App) UpdateUserRoles(userId string, newRoles string, sendWebSocketEvent
|
|||||||
|
|
||||||
schan := make(chan store.StoreResult, 1)
|
schan := make(chan store.StoreResult, 1)
|
||||||
go func() {
|
go func() {
|
||||||
userId, err := a.Srv().Store.Session().UpdateRoles(user.Id, newRoles)
|
id, err := a.Srv().Store.Session().UpdateRoles(user.Id, newRoles)
|
||||||
schan <- store.StoreResult{Data: userId, Err: err}
|
schan <- store.StoreResult{Data: id, Err: err}
|
||||||
close(schan)
|
close(schan)
|
||||||
}()
|
}()
|
||||||
|
|
||||||
@@ -1411,7 +1411,7 @@ func (a *App) UpdateUserRoles(userId string, newRoles string, sendWebSocketEvent
|
|||||||
mlog.Error("Failed during updating user roles", mlog.Err(result.Err))
|
mlog.Error("Failed during updating user roles", mlog.Err(result.Err))
|
||||||
}
|
}
|
||||||
|
|
||||||
a.InvalidateCacheForUser(user.Id)
|
a.InvalidateCacheForUser(userId)
|
||||||
a.ClearSessionCacheForUser(user.Id)
|
a.ClearSessionCacheForUser(user.Id)
|
||||||
|
|
||||||
if sendWebSocketEvent {
|
if sendWebSocketEvent {
|
||||||
|
|||||||
Ссылка в новой задаче
Block a user