From 48139656f1e925f0a5443e94445596fb238e0db8 Mon Sep 17 00:00:00 2001 From: Chris Date: Sat, 4 Nov 2017 12:06:06 -0500 Subject: fix interactive message post username/icon behavior (#7776) --- app/post.go | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) (limited to 'app/post.go') diff --git a/app/post.go b/app/post.go index 5e97f4443..844b660a9 100644 --- a/app/post.go +++ b/app/post.go @@ -736,9 +736,18 @@ func (a *App) DoPostAction(postId string, actionId string, userId string) *model return model.NewAppError("DoPostAction", "api.post.do_action.action_integration.app_error", nil, "err="+err.Error(), http.StatusBadRequest) } + retainedProps := []string{"override_username", "override_icon_url"} + if response.Update != nil { response.Update.Id = postId response.Update.AddProp("from_webhook", "true") + for _, prop := range retainedProps { + if value, ok := post.Props[prop]; ok { + response.Update.Props[prop] = value + } else { + delete(response.Update.Props, prop) + } + } if _, err := a.UpdatePost(response.Update, false); err != nil { return err } @@ -752,8 +761,15 @@ func (a *App) DoPostAction(postId string, actionId string, userId string) *model if ephemeralPost.RootId == "" { ephemeralPost.RootId = post.Id } - ephemeralPost.UserId = userId + ephemeralPost.UserId = post.UserId ephemeralPost.AddProp("from_webhook", "true") + for _, prop := range retainedProps { + if value, ok := post.Props[prop]; ok { + ephemeralPost.Props[prop] = value + } else { + delete(ephemeralPost.Props, prop) + } + } a.SendEphemeralPost(userId, ephemeralPost) } -- cgit v1.2.3-1-g7c22