MM-61484 - Deleting scheduled posts when permanently deleting a user (#29152)
* Deleting scheduled posts when permanently deleting a user * Updated tests * CI * Testing CI * Restored a test change * Skipping flaky test
Этот коммит содержится в:
коммит произвёл
GitHub
родитель
5e47c97db4
Коммит
c79a8a8b4a
@@ -1816,6 +1816,10 @@ func (a *App) PermanentDeleteUser(rctx request.CTX, user *model.User) *model.App
|
||||
return model.NewAppError("PermanentDeleteUser", "app.reaction.permanent_delete_by_user.app_error", nil, "", http.StatusInternalServerError).Wrap(err)
|
||||
}
|
||||
|
||||
if err := a.Srv().Store().ScheduledPost().PermanentDeleteByUser(user.Id); err != nil {
|
||||
return model.NewAppError("PermanentDeleteUser", "app.scheduled_post.permanent_delete_by_user.app_error", nil, "", http.StatusInternalServerError).Wrap(err)
|
||||
}
|
||||
|
||||
if err := a.Srv().Store().Bot().PermanentDelete(user.Id); err != nil {
|
||||
var invErr *store.ErrInvalidInput
|
||||
switch {
|
||||
|
||||
@@ -6,6 +6,7 @@ package app
|
||||
import (
|
||||
"bytes"
|
||||
"context"
|
||||
"database/sql"
|
||||
"encoding/json"
|
||||
"errors"
|
||||
"path/filepath"
|
||||
@@ -1095,6 +1096,30 @@ func TestPermanentDeleteUser(t *testing.T) {
|
||||
assert.NoError(t, err1)
|
||||
assert.Equal(t, 0, len(bots2))
|
||||
|
||||
scheduledPost1 := &model.ScheduledPost{
|
||||
Draft: model.Draft{
|
||||
ChannelId: th.BasicChannel.Id,
|
||||
UserId: th.BasicUser.Id,
|
||||
Message: "Scheduled post 1",
|
||||
},
|
||||
ScheduledAt: model.GetMillis() + 1000000,
|
||||
}
|
||||
|
||||
createdScheduledPost1, appErr := th.App.SaveScheduledPost(th.Context, scheduledPost1, "")
|
||||
require.Nil(t, appErr)
|
||||
|
||||
scheduledPost2 := &model.ScheduledPost{
|
||||
Draft: model.Draft{
|
||||
ChannelId: th.BasicChannel.Id,
|
||||
UserId: th.BasicUser.Id,
|
||||
Message: "Scheduled post 2",
|
||||
},
|
||||
ScheduledAt: model.GetMillis() + 1000000,
|
||||
}
|
||||
|
||||
createdScheduledPost2, appErr := th.App.SaveScheduledPost(th.Context, scheduledPost2, "")
|
||||
require.Nil(t, appErr)
|
||||
|
||||
err = th.App.PermanentDeleteUser(th.Context, th.BasicUser)
|
||||
require.Nil(t, err, "Unable to delete user. err=%v", err)
|
||||
|
||||
@@ -1114,6 +1139,15 @@ func TestPermanentDeleteUser(t *testing.T) {
|
||||
exists, err := th.App.FileExists(filepath.Join("users", user.Id))
|
||||
require.Nil(t, err, "Unable to stat finfo. err=%v", err)
|
||||
require.False(t, exists, "Profile image wasn't deleted. err=%v", err)
|
||||
|
||||
// verify scheduled posts have been deleted
|
||||
fetchedScheduledPost, scheduledPostErr := th.App.Srv().Store().ScheduledPost().Get(createdScheduledPost1.Id)
|
||||
require.ErrorIs(t, scheduledPostErr, sql.ErrNoRows)
|
||||
require.Nil(t, fetchedScheduledPost)
|
||||
|
||||
fetchedScheduledPost, scheduledPostErr = th.App.Srv().Store().ScheduledPost().Get(createdScheduledPost2.Id)
|
||||
require.ErrorIs(t, scheduledPostErr, sql.ErrNoRows)
|
||||
require.Nil(t, fetchedScheduledPost)
|
||||
}
|
||||
|
||||
func TestPasswordRecovery(t *testing.T) {
|
||||
|
||||
Ссылка в новой задаче
Block a user