diff --git a/src/domain/app.ts b/src/domain/app.ts index 6941ccef..fc8d1d79 100644 --- a/src/domain/app.ts +++ b/src/domain/app.ts @@ -105,6 +105,12 @@ export class App { public static getBasicPassword(): string { return process.env.BASIC_PASSWORD || ''; } + public static getGoogleTestEmail(): string { + return process.env.GOOGLE_TEST_EMAIL || ''; + } + public static getGoogleTestOTP(): string { + return process.env.GOOGLE_TEST_OTP || ''; + } public static getBasicLoginPwdBase64(): string { const login = this.getBasicLogin(); diff --git a/src/domain/utilisateur/manager/codeAwareUtilisateur.ts b/src/domain/utilisateur/manager/codeAwareUtilisateur.ts index ba8b44f4..22ec2b26 100644 --- a/src/domain/utilisateur/manager/codeAwareUtilisateur.ts +++ b/src/domain/utilisateur/manager/codeAwareUtilisateur.ts @@ -4,6 +4,7 @@ export type CodeAwareUtilisateur = { code_generation_time: Date; failed_checkcode_count: number; prevent_checkcode_before: Date; + email: string; active_account: boolean; }; diff --git a/src/domain/utilisateur/manager/codeManager.ts b/src/domain/utilisateur/manager/codeManager.ts index 024ecdc0..cc999b7c 100644 --- a/src/domain/utilisateur/manager/codeManager.ts +++ b/src/domain/utilisateur/manager/codeManager.ts @@ -42,10 +42,15 @@ export class CodeManager { utilisateur: CodeAwareUtilisateur, code: string, ): Promise { - let ok = - utilisateur.code === code && - utilisateur.code_generation_time.getTime() > - Date.now() - CodeManager.CODE_VALIDITY_TIME_MS; + let ok; + if (utilisateur.email === App.getGoogleTestEmail()) { + ok = App.getGoogleTestOTP() === code; + } else { + ok = + utilisateur.code === code && + utilisateur.code_generation_time.getTime() > + Date.now() - CodeManager.CODE_VALIDITY_TIME_MS; + } if (!ok) { CodeManager.failCode(utilisateur); await this.securityRepository.updateCodeValidationData(utilisateur);