From 52f81d431e8efc0f0d5a54b52c14c81b5e3df948 Mon Sep 17 00:00:00 2001 From: Antonio Cordeddu Date: Tue, 9 Aug 2022 16:56:54 +0200 Subject: [PATCH] PR #458 - code improvement required by @maxxer --- .../TwoFactorEmailCodeGeneratorService.php | 1 + .../TwoFactorSmsCodeGeneratorService.php | 23 +++++++++---------- .../Validator/TwoFactorEmailValidator.php | 3 ++- .../TwoFactorTextMessageValidator.php | 3 ++- src/User/resources/i18n/it/usuario.php | 8 ++----- 5 files changed, 18 insertions(+), 20 deletions(-) diff --git a/src/User/Service/TwoFactorEmailCodeGeneratorService.php b/src/User/Service/TwoFactorEmailCodeGeneratorService.php index cb15c88..1589f40 100644 --- a/src/User/Service/TwoFactorEmailCodeGeneratorService.php +++ b/src/User/Service/TwoFactorEmailCodeGeneratorService.php @@ -53,6 +53,7 @@ class TwoFactorEmailCodeGeneratorService implements ServiceInterface // check the sending emailYii::t( if(!$mailService->run()){ Yii::$app->session->addFlash('error', Yii::t('usuario','The email sending failed, please check your configuration.')); + return false; }else{ // put key in session Yii::$app->session->set("email_code_time", date('Y-m-d H:i:s')); diff --git a/src/User/Service/TwoFactorSmsCodeGeneratorService.php b/src/User/Service/TwoFactorSmsCodeGeneratorService.php index 7768b6c..862e0c0 100644 --- a/src/User/Service/TwoFactorSmsCodeGeneratorService.php +++ b/src/User/Service/TwoFactorSmsCodeGeneratorService.php @@ -65,20 +65,19 @@ class TwoFactorSmsCodeGeneratorService implements ServiceInterface $user = $this->user; $mobilePhone=$user->getAuthTfMobilePhone(); - if( !(null===$mobilePhone) && $mobilePhone!='' ){ - // send sms - $success = $this->smsSender->send($mobilePhone, $code); - if($success){ - // put key in session - Yii::$app->session->set("sms_code_time", date('Y-m-d H:i:s')); - Yii::$app->session->set("sms_code", $code); - }else{ - Yii::$app->session->addFlash('error', Yii::t('usuario','The sms sending failed, please check your configuration.')); - return false; - } - } else{ + if( null===$mobilePhone || $mobilePhone=='' ){ Yii::$app->session->addFlash('error', Yii::t('usuario','Mobile phone not found, please check your profile')); return false; + } + // send sms + $success = $this->smsSender->send($mobilePhone, $code); + if($success){ + // put key in session + Yii::$app->session->set("sms_code_time", date('Y-m-d H:i:s')); + Yii::$app->session->set("sms_code", $code); + }else{ + Yii::$app->session->addFlash('error', Yii::t('usuario','The sms sending failed, please check your configuration.')); + return false; } return true; } diff --git a/src/User/Validator/TwoFactorEmailValidator.php b/src/User/Validator/TwoFactorEmailValidator.php index ac10cd6..b7619fd 100644 --- a/src/User/Validator/TwoFactorEmailValidator.php +++ b/src/User/Validator/TwoFactorEmailValidator.php @@ -60,8 +60,9 @@ class TwoFactorEmailValidator extends TwoFactorCodeValidator $validators = $module->twoFactorAuthenticationValidators; $codeDurationTime = ArrayHelper::getValue($validators,$this->type.'.codeDurationTime', 300); - if($interval > $codeDurationTime ) + if($interval > $codeDurationTime ){ return false; + } $emailCode = Yii::$app->session->get("email_code"); return $this->code==$emailCode; } diff --git a/src/User/Validator/TwoFactorTextMessageValidator.php b/src/User/Validator/TwoFactorTextMessageValidator.php index 9af30fa..42930f8 100644 --- a/src/User/Validator/TwoFactorTextMessageValidator.php +++ b/src/User/Validator/TwoFactorTextMessageValidator.php @@ -59,8 +59,9 @@ class TwoFactorTextMessageValidator extends TwoFactorCodeValidator $validators = $module->twoFactorAuthenticationValidators; $codeDurationTime = ArrayHelper::getValue($validators,$this->type.'.codeDurationTime', 300); - if($interval > $codeDurationTime ) + if($interval > $codeDurationTime ){ return false; + } $smsCode = Yii::$app->session->get("sms_code"); return $this->code==$smsCode; } diff --git a/src/User/resources/i18n/it/usuario.php b/src/User/resources/i18n/it/usuario.php index a6ef150..b287dd5 100644 --- a/src/User/resources/i18n/it/usuario.php +++ b/src/User/resources/i18n/it/usuario.php @@ -126,6 +126,7 @@ return [ 'Insert' => 'Inserisci', 'Insert the code you received by SMS.' => 'Inserisci il codice ricevuto tramite SMS.', 'Insert the code you received by email.' => 'Inserisci il codice ricevuto tramite email.', + 'Insert the mobile phone number where you want to receive text message in international format' => 'Inserisci il numero di telefono sul quale ricevere il messaggio di testo nel formato internazionale', 'Invalid login or password' => 'Utente o password non validi', 'Invalid or expired link' => 'Collegamento non valido o scaduto', 'Invalid password' => 'Password non valida', @@ -141,6 +142,7 @@ return [ 'Login' => 'Accedi', 'Logout' => 'Esci', 'Manage users' => 'Gestisci gli utenti', + 'Mobile phone not found, please check your profile' => 'Il numero di telefono non è stato trovato. Verifica il tuo profilo', 'Mobile phone number' => 'Numero di cellulare', 'Mobile phone number successfully enabled.' => 'Il numero di cellulare è stato abilitato', 'Name' => 'Nome', @@ -295,13 +297,7 @@ return [ '{0, date, MMM dd, YYYY HH:mm}' => '{0, date, MMM dd, YYYY HH:mm}', '{0, date, MMMM dd, YYYY HH:mm}' => '{0, date, dd MMMM YYYY HH:mm}', '{0} cannot be blank.' => '{0} non può essere vuoto.', - 'Insert the mobile phone number where you want to receive text message in international format' => '', - 'Mobile phone not found, please check your profile' => '', 'This is the code to insert to enable two factor authentication' => '', 'An email has been sent with instructions for resetting your password' => '@@È stata inviata un\'email con le istruzioni per azzerare la tua password@@', - 'Insert the mobile phone number where you want to receive text message in international format.' => '@@Inserisci il numero di telefono sul quale ricevere il messaggio di testo nel formato internazionale@@', - 'Insert the mobile phone number where you want to receive the SMS.' => '@@Inserisci il numero del cellulare sul quale ricevere l\'SMS.@@', - 'Mobile phone number not registered.' => '@@L\'attivazione del numero di cellulare non è riuscita@@', 'Now you can resume the login process' => '@@Ora puoi riprendere il processo di autenticazione@@', - 'Send new code' => '@@Invia un nuovo codice@@', ];