Merge pull request #1955 from hedgedoc/v1/fix-oauth2-avatars

This commit is contained in:
David Mehren 2022-01-16 19:20:31 +01:00 committed by GitHub
commit c59a69da87
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 18 additions and 6 deletions

View file

@ -37,11 +37,11 @@ exports.generateAvatarURL = function (name, email = '', big = true) {
const hexDigest = hash.digest('hex')
if (email !== '' && config.allowGravatar) {
photo = 'https://cdn.libravatar.org/avatar/' + hexDigest
photo = `https://cdn.libravatar.org/avatar/${hexDigest}?default=identicon`
if (big) {
photo += '?s=400'
photo += '&s=400'
} else {
photo += '?s=96'
photo += '&s=96'
}
} else {
photo = config.serverURL + '/user/' + (name || email.substring(0, email.lastIndexOf('@')) || hexDigest) + '/avatar.svg'

View file

@ -133,6 +133,10 @@ module.exports = function (sequelize, DataTypes) {
photo = generateAvatarURL(profile.username, profile.emails[0], bigger)
break
default:
if (profile.emails && profile.emails.length > 0) {
photo = generateAvatarURL(profile.username, profile.emails[0])
break
}
photo = generateAvatarURL(profile.username)
break
}

View file

@ -62,7 +62,7 @@ function parseProfile (data) {
id: id || username,
username: username,
displayName: displayName,
email: email
emails: email ? [email] : []
}
}

View file

@ -1,5 +1,13 @@
# Release Notes
## UNRELEASED
### Bugfixes
- Fix error that Libravatar user avatars were not shown when using OAuth2 login
### Enhancements
- Libravatar avatars render as ident-icons when no avatar image was uploaded to Libravatar or Gravatar
## <i class="fa fa-tag"></i> 1.9.2 <i class="fa fa-calendar-o"></i> 2021-12-03
### Bugfixes

View file

@ -19,8 +19,8 @@ describe('generateAvatarURL() gravatar enabled', function () {
})
it('should return correct urls', function () {
assert.strictEqual(avatars.generateAvatarURL('Daan Sprenkels', 'hello@dsprenkels.com', true), 'https://cdn.libravatar.org/avatar/d41b5f3508cc3f31865566a47dd0336b?s=400')
assert.strictEqual(avatars.generateAvatarURL('Daan Sprenkels', 'hello@dsprenkels.com', false), 'https://cdn.libravatar.org/avatar/d41b5f3508cc3f31865566a47dd0336b?s=96')
assert.strictEqual(avatars.generateAvatarURL('Daan Sprenkels', 'hello@dsprenkels.com', true), 'https://cdn.libravatar.org/avatar/d41b5f3508cc3f31865566a47dd0336b?default=identicon&s=400')
assert.strictEqual(avatars.generateAvatarURL('Daan Sprenkels', 'hello@dsprenkels.com', false), 'https://cdn.libravatar.org/avatar/d41b5f3508cc3f31865566a47dd0336b?default=identicon&s=96')
})
it('should return correct urls for names with spaces', function () {