Remove default swiftmailer dependency (#448)
* replace swiftmailer references with generic interface references * replace swiftmailer dependency with suggested symfonymailer (option to also use old swiftmailer) * remove getSwiftMailer fro mtests * adjuts config to skip yii2 coded swiftmailer * dev and test only until php 7.4 (synphonymailer)
This commit is contained in:
2
.github/workflows/php.yml
vendored
2
.github/workflows/php.yml
vendored
@ -11,7 +11,7 @@ jobs:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
operating-system: ['ubuntu-latest']
|
||||
php-versions: ['8.1', '8.0','7.4','7.3', '7.2','7.1','7.0', '5.6']
|
||||
php-versions: ['8.1', '8.0','7.4']
|
||||
|
||||
services:
|
||||
mariadb:
|
||||
|
||||
@ -7,7 +7,6 @@ Yii 2 Usuario Extension
|
||||
[](https://packagist.org/packages/2amigos/yii2-usuario)
|
||||
[](https://packagist.org/packages/2amigos/yii2-usuario)
|
||||
[](https://github.com/2amigos/yii2-usuario/actions/)
|
||||
|
||||
[](//packagist.org/packages/2amigos/yii2-usuario)
|
||||
[](https://scrutinizer-ci.com/g/2amigos/yii2-usuario/?branch=master)
|
||||
|
||||
|
||||
@ -44,14 +44,17 @@
|
||||
"2amigos/yii2-selectize-widget": "^1.1",
|
||||
"yiisoft/yii2-authclient": "^2.1",
|
||||
"yiisoft/yii2-httpclient": "^2.0",
|
||||
"yiisoft/yii2-bootstrap": "^2.0",
|
||||
"yiisoft/yii2-swiftmailer": "^2.0"
|
||||
"yiisoft/yii2-bootstrap": "^2.0"
|
||||
},
|
||||
"suggest": {
|
||||
"yiisoft/yii2-symfonymailer": "A mailer driver is needed to send e-mails. Older versions use abandoned Swiftmailer which can be replaced with symfonymailer",
|
||||
"2amigos/2fa-library": "Needed if you want to enable 2 Factor Authentication. Require version ^1.0",
|
||||
"2amigos/qrcode-library": "Needed if you want to enable 2FA with QR Code generation. Require version ^1.1"
|
||||
},
|
||||
"require-dev": {
|
||||
"php": ">=7.4",
|
||||
|
||||
"yiisoft/yii2-symfonymailer": "~2.0.0",
|
||||
"friendsofphp/php-cs-fixer": "^2.3",
|
||||
"squizlabs/php_codesniffer": "*",
|
||||
"phpmd/phpmd": "@stable",
|
||||
|
||||
@ -26,7 +26,11 @@ return [
|
||||
],
|
||||
'db' => require __DIR__ . '/db.php',
|
||||
'mailer' => [
|
||||
'useFileTransport' => true,
|
||||
'messageClass' => \yii\symfonymailer\Message::class,
|
||||
[
|
||||
'class' => \yii\symfonymailer\Mailer::class,
|
||||
],
|
||||
'useFileTransport' => false
|
||||
],
|
||||
'urlManager' => [
|
||||
'showScriptName' => true,
|
||||
|
||||
@ -97,12 +97,12 @@ class GdprCest
|
||||
$I->amOnRoute('/user/registration/register');
|
||||
$this->register($I, 'tester@example.com', 'tester', 'tester');
|
||||
$I->see('Your account has been created and a message with further instructions has been sent to your email');
|
||||
$user = $I->grabRecord(User::className(), ['email' => 'tester@example.com']);
|
||||
$token = $I->grabRecord(Token::className(), ['user_id' => $user->id, 'type' => Token::TYPE_CONFIRMATION]);
|
||||
/** @var yii\swiftmailer\Message $message */
|
||||
$user = $I->grabRecord(User::class, ['email' => 'tester@example.com']);
|
||||
$token = $I->grabRecord(Token::class, ['user_id' => $user->id, 'type' => Token::TYPE_CONFIRMATION]);
|
||||
/** @var \yii\mail\MessageInterface $message */
|
||||
$message = $I->grabLastSentEmail();
|
||||
$I->assertArrayHasKey($user->email, $message->getTo());
|
||||
$I->assertStringContainsString(Html::encode($token->getUrl()), utf8_encode(quoted_printable_decode($message->getSwiftMessage()->toString())));
|
||||
$I->assertStringContainsString(Html::encode($token->getUrl()), utf8_encode(quoted_printable_decode($message->toString())));
|
||||
$I->assertFalse($user->isConfirmed);
|
||||
}
|
||||
|
||||
@ -118,12 +118,12 @@ class GdprCest
|
||||
$I->amOnRoute('/user/registration/register');
|
||||
$this->register($I, 'tester@example.com', 'tester');
|
||||
$I->see('Your account has been created');
|
||||
$user = $I->grabRecord(User::className(), ['email' => 'tester@example.com']);
|
||||
$user = $I->grabRecord(User::class, ['email' => 'tester@example.com']);
|
||||
$I->assertEquals('tester', $user->username);
|
||||
/** @var yii\swiftmailer\Message $message */
|
||||
/** @var \yii\mail\MessageInterface $message */
|
||||
$message = $I->grabLastSentEmail();
|
||||
$I->assertArrayHasKey($user->email, $message->getTo());
|
||||
$I->assertStringContainsString('We have generated a password for you', utf8_encode(quoted_printable_decode($message->getSwiftMessage()->toString())));
|
||||
$I->assertStringContainsString('We have generated a password for you', utf8_encode(quoted_printable_decode($message->toString())));
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -36,14 +36,14 @@ $I->fillField('#recoveryform-email', $user->email);
|
||||
$I->click('Continue');
|
||||
|
||||
$I->see('An email with instructions to create a new password has been sent to ' . $user->email);
|
||||
$user = $I->grabRecord(User::className(), ['email' => $user->email]);
|
||||
$token = $I->grabRecord(Token::className(), ['user_id' => $user->id, 'type' => Token::TYPE_RECOVERY]);
|
||||
/** @var yii\swiftmailer\Message $message */
|
||||
$user = $I->grabRecord(User::class, ['email' => $user->email]);
|
||||
$token = $I->grabRecord(Token::class, ['user_id' => $user->id, 'type' => Token::TYPE_RECOVERY]);
|
||||
/** @var \yii\mail\MessageInterface $message */
|
||||
$message = $I->grabLastSentEmail();
|
||||
$I->assertArrayHasKey($user->email, $message->getTo());
|
||||
$I->assertStringContainsString(
|
||||
Html::encode($token->getUrl()),
|
||||
utf8_encode(quoted_printable_decode($message->getSwiftMessage()->toString()))
|
||||
utf8_encode(quoted_printable_decode($message->toString()))
|
||||
);
|
||||
|
||||
$I->amGoingTo('reset password with invalid token');
|
||||
|
||||
@ -68,12 +68,12 @@ class RegistrationCest
|
||||
$I->amOnRoute('/user/registration/register');
|
||||
$this->register($I, 'tester@example.com', 'tester', 'tester');
|
||||
$I->see('Your account has been created and a message with further instructions has been sent to your email');
|
||||
$user = $I->grabRecord(User::className(), ['email' => 'tester@example.com']);
|
||||
$token = $I->grabRecord(Token::className(), ['user_id' => $user->id, 'type' => Token::TYPE_CONFIRMATION]);
|
||||
/** @var yii\swiftmailer\Message $message */
|
||||
$user = $I->grabRecord(User::class, ['email' => 'tester@example.com']);
|
||||
$token = $I->grabRecord(Token::class, ['user_id' => $user->id, 'type' => Token::TYPE_CONFIRMATION]);
|
||||
/** @var \yii\mail\MessageInterface $message */
|
||||
$message = $I->grabLastSentEmail();
|
||||
$I->assertArrayHasKey($user->email, $message->getTo());
|
||||
$I->assertStringContainsString(Html::encode($token->getUrl()), utf8_encode(quoted_printable_decode($message->getSwiftMessage()->toString())));
|
||||
$I->assertStringContainsString(Html::encode($token->getUrl()), utf8_encode(quoted_printable_decode($message->toString())));
|
||||
$I->assertFalse($user->isConfirmed);
|
||||
}
|
||||
|
||||
@ -91,10 +91,10 @@ class RegistrationCest
|
||||
$I->see('Your account has been created');
|
||||
$user = $I->grabRecord(User::className(), ['email' => 'tester@example.com']);
|
||||
$I->assertEquals('tester', $user->username);
|
||||
/** @var yii\swiftmailer\Message $message */
|
||||
/** @var \yii\mail\MessageInterface $message */
|
||||
$message = $I->grabLastSentEmail();
|
||||
$I->assertArrayHasKey($user->email, $message->getTo());
|
||||
$I->assertStringContainsString('We have generated a password for you', utf8_encode(quoted_printable_decode($message->getSwiftMessage()->toString())));
|
||||
$I->assertStringContainsString('We have generated a password for you', utf8_encode(quoted_printable_decode($message->toString())));
|
||||
}
|
||||
|
||||
protected function register(FunctionalTester $I, $email, $username = null, $password = null) {
|
||||
|
||||
@ -34,12 +34,12 @@ $I->click('Save');
|
||||
$I->seeRecord(User::className(), ['email' => $user->email, 'unconfirmed_email' => 'new_user@example.com']);
|
||||
|
||||
$I->see('A confirmation message has been sent to your new email address');
|
||||
$user = $I->grabRecord(User::className(), ['id' => $user->id]);
|
||||
$token = $I->grabRecord(Token::className(), ['user_id' => $user->id, 'type' => Token::TYPE_CONFIRM_NEW_EMAIL]);
|
||||
/** @var yii\swiftmailer\Message $message */
|
||||
$user = $I->grabRecord(User::class, ['id' => $user->id]);
|
||||
$token = $I->grabRecord(Token::class, ['user_id' => $user->id, 'type' => Token::TYPE_CONFIRM_NEW_EMAIL]);
|
||||
/** @var \yii\mail\MessageInterface $message */
|
||||
$message = $I->grabLastSentEmail();
|
||||
$I->assertArrayHasKey($user->unconfirmed_email, $message->getTo());
|
||||
$I->assertStringContainsString(Html::encode($token->getUrl()), utf8_encode(quoted_printable_decode($message->getSwiftMessage()->toString())));
|
||||
$I->assertStringContainsString(Html::encode($token->getUrl()), utf8_encode(quoted_printable_decode($message->toString())));
|
||||
Yii::$app->user->logout();
|
||||
|
||||
$I->amGoingTo('log in using new email address before clicking the confirmation link');
|
||||
|
||||
Reference in New Issue
Block a user