aboutsummaryrefslogtreecommitdiffstats
path: root/models
diff options
context:
space:
mode:
authorzeripath <art27@cantab.net>2021-04-15 13:22:04 +0100
committerGitHub <noreply@github.com>2021-04-15 13:22:04 +0100
commit217b5c150f85b5dc1786383ae99a07dab45a6c97 (patch)
tree3e3bb996f2bf25243d26bb6d90a5c8b74fb29751 /models
parentf7830041f4538633362de6607bbfc8c5f645f0a7 (diff)
downloadgitea-217b5c150f85b5dc1786383ae99a07dab45a6c97.tar.gz
gitea-217b5c150f85b5dc1786383ae99a07dab45a6c97.zip
Query the DB for the hash before inserting in to email_hash (#15457)
Some postgres users have logging which logs even failed transactions. So just query the db before trying to insert. Fix #15451 Signed-off-by: Andrew Thornton art27@cantab.net Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com>
Diffstat (limited to 'models')
-rw-r--r--models/avatar.go5
1 files changed, 5 insertions, 0 deletions
diff --git a/models/avatar.go b/models/avatar.go
index 166ca337ca..ad1e19d0d7 100644
--- a/models/avatar.go
+++ b/models/avatar.go
@@ -96,6 +96,11 @@ func HashedAvatarLink(email string) string {
// we don't care about any DB problem just return the lowerEmail
return lowerEmail, nil
}
+ has, err := sess.Where("email = ? AND hash = ?", emailHash.Email, emailHash.Hash).Get(new(EmailHash))
+ if has || err != nil {
+ // Seriously we don't care about any DB problems just return the lowerEmail - we expect the transaction to fail most of the time
+ return lowerEmail, nil
+ }
_, _ = sess.Insert(emailHash)
if err := sess.Commit(); err != nil {
// Seriously we don't care about any DB problems just return the lowerEmail - we expect the transaction to fail most of the time