]> source.dussan.org Git - gitea.git/commitdiff
[BugFix] use default avatar for ghost user (fix 500 error) (#9536)
author6543 <6543@obermui.de>
Sun, 29 Dec 2019 14:24:50 +0000 (15:24 +0100)
committerLauris BH <lauris@nix.lv>
Sun, 29 Dec 2019 14:24:50 +0000 (16:24 +0200)
* 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>
integrations/links_test.go
routers/user/avatar.go

index 329e54528a7d4f537e66f0f84dc4f65e6dcfd325..e69d9306edd83e7906f0414636123d81e3cb460d 100644 (file)
@@ -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)
index 20597c72ffa3b1a85fd67c281bf84f552cf038df..045206c50afc36dbbc05766099900c77dacfa015 100644 (file)
@@ -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))