* 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 committags/v1.21.12.1fd9ad05159. * Revert "dont insert "-1" in any case to issue.poster_id" This reverts commit05469ab6d8. Co-authored-by: zeripath <art27@cantab.net>
| @@ -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) | ||||
| @@ -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) | |||||
| 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)) | ctx.Redirect(user.RealSizedAvatarLink(size)) | ||||