diff options
author | zeripath <art27@cantab.net> | 2021-04-15 13:22:04 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-04-15 13:22:04 +0100 |
commit | 217b5c150f85b5dc1786383ae99a07dab45a6c97 (patch) | |
tree | 3e3bb996f2bf25243d26bb6d90a5c8b74fb29751 /models | |
parent | f7830041f4538633362de6607bbfc8c5f645f0a7 (diff) | |
download | gitea-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.go | 5 |
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 |