diff options
author | zeripath <art27@cantab.net> | 2020-03-27 12:34:39 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-03-27 14:34:39 +0200 |
commit | e6baa656f757fd1f2f6ba20c677e0c83422a8739 (patch) | |
tree | b2a396f41e1b8a08b796084d169f202d593f7357 /modules/repository | |
parent | a3f90948d8fa4dd5c92e15cc10e86d2fec37f6e7 (diff) | |
download | gitea-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.go | 3 | ||||
-rw-r--r-- | modules/repository/commits_test.go | 4 |
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")) } |