From 495ac389e0caa3d2807a29f161b12edd493daecd Mon Sep 17 00:00:00 2001 From: Ashim Sedhain <38435962+asimsedhain@users.noreply.github.com> Date: Tue, 22 Sep 2020 04:58:49 -0500 Subject: [PATCH] [GH-33] fixes nil pointer panic if SiteURL is not set (#35) --- server/plugin.go | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/server/plugin.go b/server/plugin.go index fd64307..f9e2067 100644 --- a/server/plugin.go +++ b/server/plugin.go @@ -111,6 +111,9 @@ type Plugin struct { } func (p *Plugin) OnActivate() error { + if p.API.GetConfig().ServiceSettings.SiteURL == nil { + p.API.LogError("SiteURL must be set. Some features will operate incorrectly if the SiteURL is not set. See documentation for details: http://about.mattermost.com/default-site-url") + } p.router = mux.NewRouter() p.router.HandleFunc("/templates/{name}.jpg", serveTemplateJPEG).Methods("GET") if err := p.API.RegisterCommand(createMemesCommand()); err != nil { @@ -152,7 +155,7 @@ func (p *Plugin) ServeHTTP(c *plugin.Context, w http.ResponseWriter, r *http.Req } func (p *Plugin) ExecuteCommand(c *plugin.Context, args *model.CommandArgs) (*model.CommandResponse, *model.AppError) { - siteURL := *p.API.GetConfig().ServiceSettings.SiteURL + siteURL := p.GetSiteURL() input := strings.TrimSpace(strings.TrimPrefix(args.Command, "/meme")) @@ -200,6 +203,15 @@ Available memes: ` + strings.Join(availableMemes, ", "), return resp, nil } +func (p *Plugin) GetSiteURL() string { + siteURL := "" + ptr := p.API.GetConfig().ServiceSettings.SiteURL + if ptr != nil { + siteURL = *ptr + } + return siteURL +} + func main() { if len(os.Args) > 1 { if err := demo(os.Args[1:]); err != nil {