Fix panics caused by race in notification code (#8652)

Этот коммит содержится в:
Joram Wilander
2018-04-19 10:21:33 -04:00
коммит произвёл Elias Nahum
родитель 4921fda79f
Коммит 514033f14c
2 изменённых файлов: 14 добавлений и 0 удалений

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

@@ -179,6 +179,10 @@ func (a *App) SendNotifications(post *model.Post, team *model.Team, channel *mod
if a.Config().EmailSettings.SendEmailNotifications {
for _, id := range mentionedUsersList {
if profileMap[id] == nil {
continue
}
userAllowsEmails := profileMap[id].NotifyProps[model.EMAIL_NOTIFY_PROP] != "false"
if channelEmail, ok := channelMemberNotifyPropsMap[id][model.EMAIL_NOTIFY_PROP]; ok {
if channelEmail != model.CHANNEL_NOTIFY_DEFAULT {
@@ -279,6 +283,10 @@ func (a *App) SendNotifications(post *model.Post, team *model.Team, channel *mod
if sendPushNotifications {
for _, id := range mentionedUsersList {
if profileMap[id] == nil {
continue
}
var status *model.Status
var err *model.AppError
if status, err = a.GetStatus(id); err != nil {
@@ -291,6 +299,10 @@ func (a *App) SendNotifications(post *model.Post, team *model.Team, channel *mod
}
for _, id := range allActivityPushUserIds {
if profileMap[id] == nil {
continue
}
if _, ok := mentionedUserIds[id]; !ok {
var status *model.Status
var err *model.AppError

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

@@ -23,6 +23,8 @@ func TestSendNotifications(t *testing.T) {
UserId: th.BasicUser.Id,
ChannelId: th.BasicChannel.Id,
Message: "@" + th.BasicUser2.Username,
Type: model.POST_ADD_TO_CHANNEL,
Props: map[string]interface{}{model.POST_PROPS_ADDED_USER_ID: "junk"},
}, true)
if err != nil {