diff options
author | Jesse Hallam <jesse.hallam@gmail.com> | 2018-01-02 11:41:23 -0500 |
---|---|---|
committer | Christopher Speller <crspeller@gmail.com> | 2018-01-02 08:41:23 -0800 |
commit | e9fe9f50dd5839a7cf0926a2d97e88a19c9b831e (patch) | |
tree | 87073ea7310a356b4f2d78a5b5f569730ef89257 /app/webhook.go | |
parent | b902e4eea9732573d3a3dc9f6a62ca7029cac409 (diff) | |
download | chat-e9fe9f50dd5839a7cf0926a2d97e88a19c9b831e.tar.gz chat-e9fe9f50dd5839a7cf0926a2d97e88a19c9b831e.tar.bz2 chat-e9fe9f50dd5839a7cf0926a2d97e88a19c9b831e.zip |
[PLT-8173] Add username and profile picture to webhook set up pages (#8002)
Diffstat (limited to 'app/webhook.go')
-rw-r--r-- | app/webhook.go | 33 |
1 files changed, 31 insertions, 2 deletions
diff --git a/app/webhook.go b/app/webhook.go index ba513def5..5ed71e992 100644 --- a/app/webhook.go +++ b/app/webhook.go @@ -277,6 +277,17 @@ func (a *App) CreateIncomingWebhookForChannel(creatorId string, channel *model.C hook.UserId = creatorId hook.TeamId = channel.TeamId + if !a.Config().ServiceSettings.EnablePostUsernameOverride { + hook.PostUsername = "" + } + if !a.Config().ServiceSettings.EnablePostIconOverride { + hook.PostIconURL = "" + } + + if hook.PostUsername != "" && !model.IsValidUsername(hook.PostUsername) { + return nil, model.NewAppError("CreateIncomingWebhookForChannel", "api.incoming_webhook.invalid_post_username.app_error", nil, "", http.StatusBadRequest) + } + if result := <-a.Srv.Store.Webhook().SaveIncoming(hook); result.Err != nil { return nil, result.Err } else { @@ -289,6 +300,17 @@ func (a *App) UpdateIncomingWebhook(oldHook, updatedHook *model.IncomingWebhook) return nil, model.NewAppError("UpdateIncomingWebhook", "api.incoming_webhook.disabled.app_error", nil, "", http.StatusNotImplemented) } + if !a.Config().ServiceSettings.EnablePostUsernameOverride { + updatedHook.PostUsername = oldHook.PostUsername + } + if !a.Config().ServiceSettings.EnablePostIconOverride { + updatedHook.PostIconURL = oldHook.PostIconURL + } + + if updatedHook.PostUsername != "" && !model.IsValidUsername(updatedHook.PostUsername) { + return nil, model.NewAppError("UpdateIncomingWebhook", "api.incoming_webhook.invalid_post_username.app_error", nil, "", http.StatusBadRequest) + } + updatedHook.Id = oldHook.Id updatedHook.UserId = oldHook.UserId updatedHook.CreateAt = oldHook.CreateAt @@ -608,8 +630,15 @@ func (a *App) HandleIncomingWebhook(hookId string, req *model.IncomingWebhookReq return model.NewAppError("HandleIncomingWebhook", "web.incoming_webhook.permissions.app_error", nil, "", http.StatusForbidden) } - overrideUsername := req.Username - overrideIconUrl := req.IconURL + overrideUsername := hook.PostUsername + if req.Username != "" { + overrideUsername = req.Username + } + + overrideIconUrl := hook.PostIconURL + if req.IconURL != "" { + overrideIconUrl = req.IconURL + } _, err := a.CreateWebhookPost(hook.UserId, channel, text, overrideUsername, overrideIconUrl, req.Props, webhookType, "") return err |