[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>
release/v1.15
6543 2019-12-29 15:24:50 +01:00 committed by Lauris BH
parent ae9d342f54
commit d59536c222
2 changed files with 14 additions and 7 deletions

View File

@ -51,6 +51,7 @@ func TestRedirectsNoLogin(t *testing.T) {
"/user2/repo1/src/master": "/user2/repo1/src/branch/master", "/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/file.txt": "/user2/repo1/src/branch/master/file.txt",
"/user2/repo1/src/master/directory/file.txt": "/user2/repo1/src/branch/master/directory/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 { for link, redirectLink := range redirects {
req := NewRequest(t, "GET", link) req := NewRequest(t, "GET", link)

View File

@ -6,6 +6,7 @@ package user
import ( import (
"strconv" "strconv"
"strings"
"code.gitea.io/gitea/models" "code.gitea.io/gitea/models"
"code.gitea.io/gitea/modules/context" "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) log.Debug("Asked avatar for user %v and size %v", userName, size)
user, err := models.GetUserByName(userName) var user *models.User
if err != nil { if strings.ToLower(userName) != "ghost" {
if models.IsErrUserNotExist(err) { user, err = models.GetUserByName(userName)
ctx.ServerError("Requested avatar for invalid user", err) if err != nil {
} else { if models.IsErrUserNotExist(err) {
ctx.ServerError("Retrieving user by name", 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)) ctx.Redirect(user.RealSizedAvatarLink(size))