MM-16625: Set UpdateAt correctly on deleting profile pic. (#11525)

This commit is contained in:
George Goldberg
2019-07-08 16:16:32 +01:00
committed by Harrison Healey
parent 1bd6d9a90b
commit efc342f294
2 changed files with 30 additions and 1 deletions

View File

@@ -223,7 +223,9 @@ func (us SqlUserStore) UpdateLastPictureUpdate(userId string) *model.AppError {
}
func (us SqlUserStore) ResetLastPictureUpdate(userId string) *model.AppError {
if _, err := us.GetMaster().Exec("UPDATE Users SET LastPictureUpdate = :Time, UpdateAt = :Time WHERE Id = :UserId", map[string]interface{}{"Time": 0, "UserId": userId}); err != nil {
curTime := model.GetMillis()
if _, err := us.GetMaster().Exec("UPDATE Users SET LastPictureUpdate = :PictureUpdateTime, UpdateAt = :UpdateTime WHERE Id = :UserId", map[string]interface{}{"PictureUpdateTime": 0, "UpdateTime": curTime, "UserId": userId}); err != nil {
return model.NewAppError("SqlUserStore.ResetLastPictureUpdate", "store.sql_user.update_last_picture_update.app_error", nil, "user_id="+userId, http.StatusInternalServerError)
}

View File

@@ -67,6 +67,7 @@ func TestUserStore(t *testing.T, ss store.Store) {
t.Run("GetUsersBatchForIndexing", func(t *testing.T) { testUserStoreGetUsersBatchForIndexing(t, ss) })
t.Run("GetTeamGroupUsers", func(t *testing.T) { testUserStoreGetTeamGroupUsers(t, ss) })
t.Run("GetChannelGroupUsers", func(t *testing.T) { testUserStoreGetChannelGroupUsers(t, ss) })
t.Run("ResetLastPictureUpdate", func(t *testing.T) { testUserStoreResetLastPictureUpdate(t, ss) })
}
func testUserStoreSave(t *testing.T, ss store.Store) {
@@ -3944,3 +3945,29 @@ func testUserStoreGetChannelGroupUsers(t *testing.T, ss store.Store) {
// ensure removed allowed member still returned by query
requireNUsers(2)
}
func testUserStoreResetLastPictureUpdate(t *testing.T, ss store.Store) {
u1 := &model.User{}
u1.Email = MakeEmail()
store.Must(ss.User().Save(u1))
defer func() { require.Nil(t, ss.User().PermanentDelete(u1.Id)) }()
store.Must(ss.Team().SaveMember(&model.TeamMember{TeamId: model.NewId(), UserId: u1.Id}, -1))
err := ss.User().UpdateLastPictureUpdate(u1.Id)
require.Nil(t, err)
user, err := ss.User().Get(u1.Id)
require.Nil(t, err)
assert.NotZero(t, user.LastPictureUpdate)
assert.NotZero(t, user.UpdateAt)
err = ss.User().ResetLastPictureUpdate(u1.Id)
require.Nil(t, err)
user2, err := ss.User().Get(u1.Id)
require.Nil(t, err)
assert.True(t, user2.UpdateAt > user.UpdateAt)
assert.Zero(t, user2.LastPictureUpdate)
}