[MM-44954] Regenerate default avatar (#22871)
* Regenerate default profile picture if username has changed
- Only actions is profile picture has not been changed
- Adjusts ResetLastPictureUpdate store function to store
-curTime instead of 0
- This is to support updating the default picture while still
retaining the ability to discern a default image from a set one.
- Changes SetDefaultProfileImage to leverage UpdateDefaultProfileImage
- Test updates around updating user default profile pictures
* App interface updates
* Only display picture update date if non-negative
- Ensures we don't display negative timestamps (default images)
- Change ported for mono-repo changes
* Remove duplicate test assertion
---------
Co-authored-by: Nathan Geist <ngeist@spiria.com>
Co-authored-by: Mattermost Build <build@mattermost.com>
Этот коммит содержится в:
@@ -285,7 +285,7 @@ func (us SqlUserStore) UpdateLastPictureUpdate(userId string) error {
|
||||
func (us SqlUserStore) ResetLastPictureUpdate(userId string) error {
|
||||
curTime := model.GetMillis()
|
||||
|
||||
if _, err := us.GetMasterX().Exec("UPDATE Users SET LastPictureUpdate = ?, UpdateAt = ? WHERE Id = ?", 0, curTime, userId); err != nil {
|
||||
if _, err := us.GetMasterX().Exec("UPDATE Users SET LastPictureUpdate = ?, UpdateAt = ? WHERE Id = ?", -curTime, curTime, userId); err != nil {
|
||||
return errors.Wrapf(err, "failed to update User with userId=%s", userId)
|
||||
}
|
||||
|
||||
|
||||
@@ -5895,6 +5895,7 @@ func testDeactivateGuests(t *testing.T, ss store.Store) {
|
||||
}
|
||||
|
||||
func testUserStoreResetLastPictureUpdate(t *testing.T, ss store.Store) {
|
||||
startTime := model.GetMillis()
|
||||
u1 := &model.User{}
|
||||
u1.Email = MakeEmail()
|
||||
_, err := ss.User().Save(u1)
|
||||
@@ -5909,8 +5910,7 @@ func testUserStoreResetLastPictureUpdate(t *testing.T, ss store.Store) {
|
||||
user, err := ss.User().Get(context.Background(), u1.Id)
|
||||
require.NoError(t, err)
|
||||
|
||||
assert.NotZero(t, user.LastPictureUpdate)
|
||||
assert.NotZero(t, user.UpdateAt)
|
||||
assert.GreaterOrEqual(t, user.LastPictureUpdate, startTime)
|
||||
|
||||
// Ensure update at timestamp changes
|
||||
time.Sleep(time.Millisecond)
|
||||
@@ -5923,8 +5923,8 @@ func testUserStoreResetLastPictureUpdate(t *testing.T, ss store.Store) {
|
||||
user2, err := ss.User().Get(context.Background(), u1.Id)
|
||||
require.NoError(t, err)
|
||||
|
||||
assert.True(t, user2.UpdateAt > user.UpdateAt)
|
||||
assert.Zero(t, user2.LastPictureUpdate)
|
||||
assert.Greater(t, user2.UpdateAt, user.UpdateAt)
|
||||
assert.Less(t, user2.LastPictureUpdate, -startTime)
|
||||
}
|
||||
|
||||
func testGetKnownUsers(t *testing.T, ss store.Store) {
|
||||
|
||||
Ссылка в новой задаче
Block a user