[BugFix] use default avatar for ghost user (fix 500 error) (#9536)

* remove since it is there for 3years

* fix 500 error for ghost avatar

* dont insert "-1" in any case to issue.poster_id

* fix lint

* Test: ghost avatar link

* fix test

* Revert "remove since it is there for 3years"

This reverts commit fd9ad05159c84ba804b126d2a959963d82578b22.

* Revert "dont insert "-1" in any case to issue.poster_id"

This reverts commit 05469ab6d815a6cc6478a256018b9ed1a12749e0.

Co-authored-by: zeripath <art27@cantab.net>
tokarchuk/v1.17
6543 5 years ago committed by Lauris BH
parent ae9d342f54
commit d59536c222
  1. 1
      integrations/links_test.go
  2. 20
      routers/user/avatar.go

@ -51,6 +51,7 @@ func TestRedirectsNoLogin(t *testing.T) {
"/user2/repo1/src/master": "/user2/repo1/src/branch/master",
"/user2/repo1/src/master/file.txt": "/user2/repo1/src/branch/master/file.txt",
"/user2/repo1/src/master/directory/file.txt": "/user2/repo1/src/branch/master/directory/file.txt",
"/user/avatar/Ghost/-1": "/img/avatar_default.png",
}
for link, redirectLink := range redirects {
req := NewRequest(t, "GET", link)

@ -6,6 +6,7 @@ package user
import (
"strconv"
"strings"
"code.gitea.io/gitea/models"
"code.gitea.io/gitea/modules/context"
@ -23,14 +24,19 @@ func Avatar(ctx *context.Context) {
log.Debug("Asked avatar for user %v and size %v", userName, size)
user, err := models.GetUserByName(userName)
if err != nil {
if models.IsErrUserNotExist(err) {
ctx.ServerError("Requested avatar for invalid user", err)
} else {
ctx.ServerError("Retrieving user by name", err)
var user *models.User
if strings.ToLower(userName) != "ghost" {
user, err = models.GetUserByName(userName)
if err != nil {
if models.IsErrUserNotExist(err) {
ctx.ServerError("Requested avatar for invalid user", err)
} else {
ctx.ServerError("Retrieving user by name", err)
}
return
}
return
} else {
user = models.NewGhostUser()
}
ctx.Redirect(user.RealSizedAvatarLink(size))

Loading…
Cancel
Save