diff options
Diffstat (limited to 'app/post.go')
-rw-r--r-- | app/post.go | 18 |
1 files changed, 17 insertions, 1 deletions
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) } |