From 2c154ccbe7d3d4f038885eb439c36bb9fd533e53 Mon Sep 17 00:00:00 2001 From: Unknwon Date: Fri, 10 Feb 2017 16:05:11 -0500 Subject: Minor improve on error handling --- modules/context/context.go | 16 +++++++++------- modules/context/repo.go | 14 +++++++------- 2 files changed, 16 insertions(+), 14 deletions(-) (limited to 'modules/context') diff --git a/modules/context/context.go b/modules/context/context.go index a9a5e270..e90d5f00 100644 --- a/modules/context/context.go +++ b/modules/context/context.go @@ -89,22 +89,24 @@ func (ctx *Context) RenderWithErr(msg string, tpl base.TplName, form interface{} // Handle handles and logs error by given status. func (ctx *Context) Handle(status int, title string, err error) { - if err != nil { - log.Error(4, "%s: %v", title, err) - if macaron.Env != macaron.PROD { - ctx.Data["ErrorMsg"] = err - } - } - switch status { case 404: ctx.Data["Title"] = "Page Not Found" case 500: ctx.Data["Title"] = "Internal Server Error" + log.Error(4, "%s: %v", title, err) + if !setting.ProdMode || (ctx.IsSigned && ctx.User.IsAdmin) { + ctx.Data["ErrorMsg"] = err + } } ctx.HTML(status, base.TplName(fmt.Sprintf("status/%d", status))) } +// NotFound simply renders the 404 page. +func (ctx *Context) NotFound() { + ctx.Handle(404, "", nil) +} + // NotFoundOrServerError use error check function to determine if the error // is about not found. It responses with 404 status code for not found error, // or error context description for logging purpose of 500 server error. diff --git a/modules/context/repo.go b/modules/context/repo.go index 1c322a95..b72d19ec 100644 --- a/modules/context/repo.go +++ b/modules/context/repo.go @@ -164,7 +164,7 @@ func RepoAssignment(args ...bool) macaron.Handler { earlyResponseForGoGetMeta(ctx) return } - ctx.Handle(404, "GetUserByName", err) + ctx.NotFound() } else { ctx.Handle(500, "GetUserByName", err) } @@ -182,7 +182,7 @@ func RepoAssignment(args ...bool) macaron.Handler { earlyResponseForGoGetMeta(ctx) return } - ctx.Handle(404, "GetRepositoryByName", err) + ctx.NotFound() } else { ctx.Handle(500, "GetRepositoryByName", err) } @@ -210,7 +210,7 @@ func RepoAssignment(args ...bool) macaron.Handler { earlyResponseForGoGetMeta(ctx) return } - ctx.Handle(404, "no access right", err) + ctx.NotFound() return } ctx.Data["HasAccess"] = true @@ -395,7 +395,7 @@ func RepoRef() macaron.Handler { ctx.Repo.Commit, err = ctx.Repo.GitRepo.GetCommit(refName) if err != nil { - ctx.Handle(404, "GetCommit", nil) + ctx.NotFound() return } } else { @@ -455,7 +455,7 @@ func RepoRef() macaron.Handler { func RequireRepoAdmin() macaron.Handler { return func(ctx *Context) { if !ctx.IsSigned || (!ctx.Repo.IsAdmin() && !ctx.User.IsAdmin) { - ctx.Handle(404, ctx.Req.RequestURI, nil) + ctx.NotFound() return } } @@ -464,7 +464,7 @@ func RequireRepoAdmin() macaron.Handler { func RequireRepoWriter() macaron.Handler { return func(ctx *Context) { if !ctx.IsSigned || (!ctx.Repo.IsWriter() && !ctx.User.IsAdmin) { - ctx.Handle(404, ctx.Req.RequestURI, nil) + ctx.NotFound() return } } @@ -474,7 +474,7 @@ func RequireRepoWriter() macaron.Handler { func GitHookService() macaron.Handler { return func(ctx *Context) { if !ctx.User.CanEditGitHook() { - ctx.Handle(404, "GitHookService", nil) + ctx.NotFound() return } } -- cgit v1.2.3