summaryrefslogtreecommitdiffstats
path: root/modules/repository
diff options
context:
space:
mode:
authorzeripath <art27@cantab.net>2020-03-27 12:34:39 +0000
committerGitHub <noreply@github.com>2020-03-27 14:34:39 +0200
commite6baa656f757fd1f2f6ba20c677e0c83422a8739 (patch)
treeb2a396f41e1b8a08b796084d169f202d593f7357 /modules/repository
parenta3f90948d8fa4dd5c92e15cc10e86d2fec37f6e7 (diff)
downloadgitea-e6baa656f757fd1f2f6ba20c677e0c83422a8739.tar.gz
gitea-e6baa656f757fd1f2f6ba20c677e0c83422a8739.zip
make avatar lookup occur at image request (#10540)
speed up page generation by making avatar lookup occur at the browser not at page generation * Protect against evil email address ".." * hash the complete email address Signed-off-by: Andrew Thornton <art27@cantab.net> Co-Authored-By: Lauris BH <lauris@nix.lv>
Diffstat (limited to 'modules/repository')
-rw-r--r--modules/repository/commits.go3
-rw-r--r--modules/repository/commits_test.go4
2 files changed, 4 insertions, 3 deletions
diff --git a/modules/repository/commits.go b/modules/repository/commits.go
index 7345aaae24..e02f3d11ca 100644
--- a/modules/repository/commits.go
+++ b/modules/repository/commits.go
@@ -10,7 +10,6 @@ import (
"time"
"code.gitea.io/gitea/models"
- "code.gitea.io/gitea/modules/base"
"code.gitea.io/gitea/modules/git"
"code.gitea.io/gitea/modules/log"
api "code.gitea.io/gitea/modules/structs"
@@ -124,7 +123,7 @@ func (pc *PushCommits) AvatarLink(email string) string {
var err error
u, err = models.GetUserByEmail(email)
if err != nil {
- pc.avatars[email] = base.AvatarLink(email)
+ pc.avatars[email] = models.AvatarLink(email)
if !models.IsErrUserNotExist(err) {
log.Error("GetUserByEmail: %v", err)
return ""
diff --git a/modules/repository/commits_test.go b/modules/repository/commits_test.go
index 2f61ce3329..cb00e19c2e 100644
--- a/modules/repository/commits_test.go
+++ b/modules/repository/commits_test.go
@@ -6,6 +6,8 @@ package repository
import (
"container/list"
+ "crypto/md5"
+ "fmt"
"testing"
"time"
@@ -114,7 +116,7 @@ func TestPushCommits_AvatarLink(t *testing.T) {
pushCommits.AvatarLink("user2@example.com"))
assert.Equal(t,
- "https://secure.gravatar.com/avatar/19ade630b94e1e0535b3df7387434154?d=identicon",
+ "/avatar/"+fmt.Sprintf("%x", md5.Sum([]byte("nonexistent@example.com"))),
pushCommits.AvatarLink("nonexistent@example.com"))
}