From b3418d0f2f8c2a1bbbccbd1210dfdf9fdd0726e8 Mon Sep 17 00:00:00 2001 From: Anand Chowdhary Date: Sat, 9 Jan 2021 19:21:22 +0530 Subject: [PATCH] :recycle: Make gravatar optional (fixed #1114) --- src/config/configuration.interface.ts | 4 ++++ src/config/configuration.ts | 3 +++ src/modules/auth/auth.service.ts | 22 ++++++++++++---------- 3 files changed, 19 insertions(+), 10 deletions(-) diff --git a/src/config/configuration.interface.ts b/src/config/configuration.interface.ts index f2b4e7b04..52c8cd6e5 100644 --- a/src/config/configuration.interface.ts +++ b/src/config/configuration.interface.ts @@ -117,4 +117,8 @@ export interface Configuration { googleMaps: { apiKey: string; }; + + gravatar: { + enabled: boolean; + }; } diff --git a/src/config/configuration.ts b/src/config/configuration.ts index 52aa80161..5aa81f003 100644 --- a/src/config/configuration.ts +++ b/src/config/configuration.ts @@ -140,6 +140,9 @@ const configuration: Configuration = { googleMaps: { apiKey: process.env.GOOGLE_MAPS_API_KEY, }, + gravatar: { + enabled: bool(process.env.PASSWORD_PWNED_CHECK, true), + }, }; const configFunction: ConfigFactory = () => configuration; diff --git a/src/modules/auth/auth.service.ts b/src/modules/auth/auth.service.ts index 4970d52b7..f731f030e 100644 --- a/src/modules/auth/auth.service.ts +++ b/src/modules/auth/auth.service.ts @@ -201,16 +201,18 @@ export class AuthService { } catch (error) {} } - for await (const emailString of [email, emailSafe]) { - const md5Email = createHash('md5').update(emailString).digest('hex'); - try { - const img = await got( - `https://www.gravatar.com/avatar/${md5Email}?d=404`, - { responseType: 'buffer' }, - ); - if (img.body.byteLength > 1) - data.profilePictureUrl = `https://www.gravatar.com/avatar/${md5Email}?d=mp`; - } catch (error) {} + if (this.configService.get('gravatar.enabled')) { + for await (const emailString of [email, emailSafe]) { + const md5Email = createHash('md5').update(emailString).digest('hex'); + try { + const img = await got( + `https://www.gravatar.com/avatar/${md5Email}?d=404`, + { responseType: 'buffer' }, + ); + if (img.body.byteLength > 1) + data.profilePictureUrl = `https://www.gravatar.com/avatar/${md5Email}?d=mp`; + } catch (error) {} + } } let id: number | undefined = undefined;