diff --git a/models/issue.go b/models/issue.go index a84fb0541e..f856ca63b6 100644 --- a/models/issue.go +++ b/models/issue.go @@ -44,6 +44,10 @@ type Issue struct { func (i *Issue) GetPoster() (err error) { i.Poster, err = GetUserById(i.PosterId) + if err == ErrUserNotExist { + i.Poster = &User{Name: "FakeUser"} + return nil + } return err } diff --git a/routers/repo/issue.go b/routers/repo/issue.go index 3343800663..fc6ee9ebe6 100644 --- a/routers/repo/issue.go +++ b/routers/repo/issue.go @@ -33,12 +33,10 @@ func Issues(ctx *middleware.Context) { isShowClosed := ctx.Query("state") == "closed" - if viewType != "all" { - if !ctx.IsSigned { - ctx.SetCookie("redirect_to", "/"+url.QueryEscape(ctx.Req.RequestURI)) - ctx.Redirect("/user/login") - return - } + if viewType != "all" && !ctx.IsSigned { + ctx.SetCookie("redirect_to", "/"+url.QueryEscape(ctx.Req.RequestURI)) + ctx.Redirect("/user/login") + return } var assigneeId, posterId int64 @@ -87,7 +85,7 @@ func Issues(ctx *middleware.Context) { } if err = issues[i].GetPoster(); err != nil { - ctx.Handle(500, "issue.Issues(GetPoster): %v", err) + ctx.Handle(500, "issue.Issues(GetPoster)", fmt.Errorf("[#%d]%v", issues[i].Id, err)) return } } diff --git a/routers/user/home.go b/routers/user/home.go index 775df03752..f5130f47a8 100644 --- a/routers/user/home.go +++ b/routers/user/home.go @@ -53,7 +53,11 @@ func Profile(ctx *middleware.Context, params martini.Params) { user, err := models.GetUserByName(params["username"]) if err != nil { - ctx.Handle(500, "user.Profile", err) + if err == models.ErrUserNotExist { + ctx.Handle(404, "user.Profile", err) + } else { + ctx.Handle(500, "user.Profile", err) + } return }