MM-17224 - Bulk export fails due to missing user (#11738)

* don't fail on deleted users

* test

* logging

* more fine grained error checking
Этот коммит содержится в:
Eli Yukelzon
2019-08-01 15:19:38 +03:00
коммит произвёл Jesse Hallam
родитель de88adfc0b
Коммит 89a79e2e9f
2 изменённых файлов: 15 добавлений и 1 удалений

Просмотреть файл

@@ -5,12 +5,15 @@ package app
import (
"encoding/json"
"fmt"
"io"
"net/http"
"os"
"path/filepath"
"strings"
"github.com/mattermost/mattermost-server/store"
"github.com/mattermost/mattermost-server/mlog"
"github.com/mattermost/mattermost-server/model"
"github.com/pkg/errors"
@@ -410,6 +413,10 @@ func (a *App) BuildPostReactions(postId string) (*[]ReactionImportData, *model.A
var user *model.User
user, err = a.Srv.Store.User().Get(reaction.UserId)
if err != nil {
if err.Id == store.MISSING_ACCOUNT_ERROR { // this is a valid case, the user that reacted might've been deleted by now
mlog.Info(fmt.Sprintf("Skipping reactions by user %v, since the entity doesn't exist anymore", reaction.UserId))
continue
}
return nil, err
}
reactionsOfPost = append(reactionsOfPost, *ImportReactionFromPost(user, reaction))

Просмотреть файл

@@ -18,15 +18,22 @@ func TestReactionsOfPost(t *testing.T) {
post := th.BasicPost
post.HasReactions = true
th.BasicUser2.DeleteAt = 1234
reactionObject := model.Reaction{
UserId: th.BasicUser.Id,
PostId: post.Id,
EmojiName: "emoji",
CreateAt: model.GetMillis(),
}
reactionObjectDeleted := model.Reaction{
UserId: th.BasicUser2.Id,
PostId: post.Id,
EmojiName: "emoji",
CreateAt: model.GetMillis(),
}
th.App.SaveReactionForPost(&reactionObject)
th.App.SaveReactionForPost(&reactionObjectDeleted)
reactionsOfPost, err := th.App.BuildPostReactions(post.Id)
require.Nil(t, err)