diff options
Diffstat (limited to 'api/context.go')
-rw-r--r-- | api/context.go | 36 |
1 files changed, 17 insertions, 19 deletions
diff --git a/api/context.go b/api/context.go index eed035daf..0f7ba0fff 100644 --- a/api/context.go +++ b/api/context.go @@ -476,25 +476,23 @@ func IsPrivateIpAddress(ipAddress string) bool { } func RenderWebError(err *model.AppError, w http.ResponseWriter, r *http.Request) { - T, locale := utils.GetTranslationsAndLocale(w, r) - page := utils.NewHTMLTemplate("error", locale) - page.Props["Message"] = err.Message - page.Props["Details"] = err.DetailedError - - pathParts := strings.Split(r.URL.Path, "/") - if len(pathParts) > 1 { - page.Props["SiteURL"] = GetProtocol(r) + "://" + r.Host + "/" + pathParts[1] - } else { - page.Props["SiteURL"] = GetProtocol(r) + "://" + r.Host - } - - page.Props["Title"] = T("api.templates.error.title", map[string]interface{}{"SiteName": utils.ClientCfg["SiteName"]}) - page.Props["Link"] = T("api.templates.error.link") - - w.WriteHeader(err.StatusCode) - if rErr := page.RenderToWriter(w); rErr != nil { - l4g.Error("Failed to create error page: " + rErr.Error() + ", Original error: " + err.Error()) - } + T, _ := utils.GetTranslationsAndLocale(w, r) + + title := T("api.templates.error.title", map[string]interface{}{"SiteName": utils.ClientCfg["SiteName"]}) + message := err.Message + details := err.DetailedError + link := "/" + linkMessage := T("api.templates.error.link") + + http.Redirect( + w, + r, + "/error?title="+url.QueryEscape(title)+ + "&message="+url.QueryEscape(message)+ + "&details="+url.QueryEscape(details)+ + "&link="+url.QueryEscape(link)+ + "&linkmessage="+url.QueryEscape(linkMessage), + http.StatusTemporaryRedirect) } func Handle404(w http.ResponseWriter, r *http.Request) { |