diff options
Diffstat (limited to 'modules/context')
-rw-r--r-- | modules/context/context.go | 16 | ||||
-rw-r--r-- | modules/context/repo.go | 14 |
2 files changed, 16 insertions, 14 deletions
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 } } |