%PDF- %PDF-
| Direktori : /home/vacivi36/intranet.vacivitta.com.br/protected/modules/twofa/drivers/ |
| Current File : /home/vacivi36/intranet.vacivitta.com.br/protected/modules/twofa/drivers/EmailDriver.php |
<?php
/**
* @link https://www.humhub.org/
* @copyright Copyright (c) 2020 HumHub GmbH & Co. KG
* @license https://www.humhub.com/licences
*/
namespace humhub\modules\twofa\drivers;
use humhub\modules\user\models\User;
use Yii;
use yii\mail\BaseMessage;
use yii\validators\EmailValidator;
class EmailDriver extends BaseDriver
{
/**
* @inheritdoc
*/
public function init()
{
parent::init();
$this->name = Yii::t('TwofaModule.base', 'Email');
$this->info = Yii::t('TwofaModule.base', 'A confirmation code hast just been sent to your email address. Please enter the code from the email in order to proceed.');
}
/**
* @inheritdoc
*/
public function isActive(): bool
{
return parent::isActive() && $this->isValidUserEmail();
}
public function send()
{
if (!$this->beforeSend()) {
return false;
}
/** @var User $user */
$user = Yii::$app->user->getIdentity();
/** @var BaseMessage $mail */
$mail = Yii::$app->mailer->compose([
'html' => '@twofa/views/mails/VerifyingCode',
'text' => '@twofa/views/mails/plaintext/VerifyingCode'
], [
'user' => $user,
'code' => $this->getCode(),
]);
$mail->setTo($user->email);
$mail->setSubject(Yii::t('TwofaModule.base', 'Your login verification code'));
return $mail->send();
}
protected function isValidUserEmail(): bool
{
/* @var User $user */
$user = Yii::$app->user->getIdentity();
return !empty($user->email) && (new EmailValidator)->validate($user->email);
}
}