소스 검색

Minor improve on error handling

Unknwon 8 년 전
부모
커밋
2c154ccbe7
6개의 변경된 파일22개의 추가작업 그리고 19개의 파일을 삭제
  1. 1 1
      gogs.go
  2. 9 7
      modules/context/context.go
  3. 7 7
      modules/context/repo.go
  4. 2 2
      modules/setting/setting.go
  5. 2 1
      routers/install.go
  6. 1 1
      templates/.VERSION

+ 1 - 1
gogs.go

@@ -16,7 +16,7 @@ import (
 	"github.com/gogits/gogs/modules/setting"
 )
 
-const APP_VER = "0.9.139.0209"
+const APP_VER = "0.9.139.0210"
 
 func init() {
 	setting.AppVer = APP_VER

+ 9 - 7
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.

+ 7 - 7
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
 		}
 	}

+ 2 - 2
modules/setting/setting.go

@@ -620,8 +620,8 @@ func newService() {
 
 func newLogService() {
 	if len(BuildTime) > 0 {
-		log.Info("Build Time: %s", BuildTime)
-		log.Info("Build Git Hash: %s", BuildGitHash)
+		log.Trace("Build Time: %s", BuildTime)
+		log.Trace("Build Git Hash: %s", BuildGitHash)
 	}
 
 	// Because we always create a console logger as primary logger before all settings are loaded,

+ 2 - 1
routers/install.go

@@ -87,7 +87,8 @@ func GlobalInit() {
 
 	if setting.InstallLock && setting.SSH.StartBuiltinServer {
 		ssh.Listen(setting.SSH.ListenHost, setting.SSH.ListenPort, setting.SSH.ServerCiphers)
-		log.Info("SSH server started on %s:%v. Cipher list (%v)", setting.SSH.ListenHost, setting.SSH.ListenPort, setting.SSH.ServerCiphers)
+		log.Info("SSH server started on %s:%v", setting.SSH.ListenHost, setting.SSH.ListenPort)
+		log.Trace("SSH server cipher list: %v", setting.SSH.ServerCiphers)
 	}
 }
 

+ 1 - 1
templates/.VERSION

@@ -1 +1 @@
-0.9.139.0209
+0.9.139.0210