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
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
operating-system: ['ubuntu-latest']
|
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:
|
services:
|
||||||
mariadb:
|
mariadb:
|
||||||
|
|||||||
@ -7,7 +7,6 @@ Yii 2 Usuario Extension
|
|||||||
[](https://packagist.org/packages/2amigos/yii2-usuario)
|
[](https://packagist.org/packages/2amigos/yii2-usuario)
|
||||||
[](https://packagist.org/packages/2amigos/yii2-usuario)
|
[](https://packagist.org/packages/2amigos/yii2-usuario)
|
||||||
[](https://github.com/2amigos/yii2-usuario/actions/)
|
[](https://github.com/2amigos/yii2-usuario/actions/)
|
||||||
|
|
||||||
[](//packagist.org/packages/2amigos/yii2-usuario)
|
[](//packagist.org/packages/2amigos/yii2-usuario)
|
||||||
[](https://scrutinizer-ci.com/g/2amigos/yii2-usuario/?branch=master)
|
[](https://scrutinizer-ci.com/g/2amigos/yii2-usuario/?branch=master)
|
||||||
|
|
||||||
|
|||||||
@ -44,14 +44,17 @@
|
|||||||
"2amigos/yii2-selectize-widget": "^1.1",
|
"2amigos/yii2-selectize-widget": "^1.1",
|
||||||
"yiisoft/yii2-authclient": "^2.1",
|
"yiisoft/yii2-authclient": "^2.1",
|
||||||
"yiisoft/yii2-httpclient": "^2.0",
|
"yiisoft/yii2-httpclient": "^2.0",
|
||||||
"yiisoft/yii2-bootstrap": "^2.0",
|
"yiisoft/yii2-bootstrap": "^2.0"
|
||||||
"yiisoft/yii2-swiftmailer": "^2.0"
|
|
||||||
},
|
},
|
||||||
"suggest": {
|
"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/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"
|
"2amigos/qrcode-library": "Needed if you want to enable 2FA with QR Code generation. Require version ^1.1"
|
||||||
},
|
},
|
||||||
"require-dev": {
|
"require-dev": {
|
||||||
|
"php": ">=7.4",
|
||||||
|
|
||||||
|
"yiisoft/yii2-symfonymailer": "~2.0.0",
|
||||||
"friendsofphp/php-cs-fixer": "^2.3",
|
"friendsofphp/php-cs-fixer": "^2.3",
|
||||||
"squizlabs/php_codesniffer": "*",
|
"squizlabs/php_codesniffer": "*",
|
||||||
"phpmd/phpmd": "@stable",
|
"phpmd/phpmd": "@stable",
|
||||||
|
|||||||
@ -26,7 +26,11 @@ return [
|
|||||||
],
|
],
|
||||||
'db' => require __DIR__ . '/db.php',
|
'db' => require __DIR__ . '/db.php',
|
||||||
'mailer' => [
|
'mailer' => [
|
||||||
'useFileTransport' => true,
|
'messageClass' => \yii\symfonymailer\Message::class,
|
||||||
|
[
|
||||||
|
'class' => \yii\symfonymailer\Mailer::class,
|
||||||
|
],
|
||||||
|
'useFileTransport' => false
|
||||||
],
|
],
|
||||||
'urlManager' => [
|
'urlManager' => [
|
||||||
'showScriptName' => true,
|
'showScriptName' => true,
|
||||||
|
|||||||
@ -97,12 +97,12 @@ class GdprCest
|
|||||||
$I->amOnRoute('/user/registration/register');
|
$I->amOnRoute('/user/registration/register');
|
||||||
$this->register($I, 'tester@example.com', 'tester', 'tester');
|
$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');
|
$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']);
|
$user = $I->grabRecord(User::class, ['email' => 'tester@example.com']);
|
||||||
$token = $I->grabRecord(Token::className(), ['user_id' => $user->id, 'type' => Token::TYPE_CONFIRMATION]);
|
$token = $I->grabRecord(Token::class, ['user_id' => $user->id, 'type' => Token::TYPE_CONFIRMATION]);
|
||||||
/** @var yii\swiftmailer\Message $message */
|
/** @var \yii\mail\MessageInterface $message */
|
||||||
$message = $I->grabLastSentEmail();
|
$message = $I->grabLastSentEmail();
|
||||||
$I->assertArrayHasKey($user->email, $message->getTo());
|
$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);
|
$I->assertFalse($user->isConfirmed);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -118,12 +118,12 @@ class GdprCest
|
|||||||
$I->amOnRoute('/user/registration/register');
|
$I->amOnRoute('/user/registration/register');
|
||||||
$this->register($I, 'tester@example.com', 'tester');
|
$this->register($I, 'tester@example.com', 'tester');
|
||||||
$I->see('Your account has been created');
|
$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);
|
$I->assertEquals('tester', $user->username);
|
||||||
/** @var yii\swiftmailer\Message $message */
|
/** @var \yii\mail\MessageInterface $message */
|
||||||
$message = $I->grabLastSentEmail();
|
$message = $I->grabLastSentEmail();
|
||||||
$I->assertArrayHasKey($user->email, $message->getTo());
|
$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->click('Continue');
|
||||||
|
|
||||||
$I->see('An email with instructions to create a new password has been sent to ' . $user->email);
|
$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]);
|
$user = $I->grabRecord(User::class, ['email' => $user->email]);
|
||||||
$token = $I->grabRecord(Token::className(), ['user_id' => $user->id, 'type' => Token::TYPE_RECOVERY]);
|
$token = $I->grabRecord(Token::class, ['user_id' => $user->id, 'type' => Token::TYPE_RECOVERY]);
|
||||||
/** @var yii\swiftmailer\Message $message */
|
/** @var \yii\mail\MessageInterface $message */
|
||||||
$message = $I->grabLastSentEmail();
|
$message = $I->grabLastSentEmail();
|
||||||
$I->assertArrayHasKey($user->email, $message->getTo());
|
$I->assertArrayHasKey($user->email, $message->getTo());
|
||||||
$I->assertStringContainsString(
|
$I->assertStringContainsString(
|
||||||
Html::encode($token->getUrl()),
|
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');
|
$I->amGoingTo('reset password with invalid token');
|
||||||
|
|||||||
@ -68,12 +68,12 @@ class RegistrationCest
|
|||||||
$I->amOnRoute('/user/registration/register');
|
$I->amOnRoute('/user/registration/register');
|
||||||
$this->register($I, 'tester@example.com', 'tester', 'tester');
|
$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');
|
$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']);
|
$user = $I->grabRecord(User::class, ['email' => 'tester@example.com']);
|
||||||
$token = $I->grabRecord(Token::className(), ['user_id' => $user->id, 'type' => Token::TYPE_CONFIRMATION]);
|
$token = $I->grabRecord(Token::class, ['user_id' => $user->id, 'type' => Token::TYPE_CONFIRMATION]);
|
||||||
/** @var yii\swiftmailer\Message $message */
|
/** @var \yii\mail\MessageInterface $message */
|
||||||
$message = $I->grabLastSentEmail();
|
$message = $I->grabLastSentEmail();
|
||||||
$I->assertArrayHasKey($user->email, $message->getTo());
|
$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);
|
$I->assertFalse($user->isConfirmed);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -91,10 +91,10 @@ class RegistrationCest
|
|||||||
$I->see('Your account has been created');
|
$I->see('Your account has been created');
|
||||||
$user = $I->grabRecord(User::className(), ['email' => 'tester@example.com']);
|
$user = $I->grabRecord(User::className(), ['email' => 'tester@example.com']);
|
||||||
$I->assertEquals('tester', $user->username);
|
$I->assertEquals('tester', $user->username);
|
||||||
/** @var yii\swiftmailer\Message $message */
|
/** @var \yii\mail\MessageInterface $message */
|
||||||
$message = $I->grabLastSentEmail();
|
$message = $I->grabLastSentEmail();
|
||||||
$I->assertArrayHasKey($user->email, $message->getTo());
|
$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) {
|
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->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');
|
$I->see('A confirmation message has been sent to your new email address');
|
||||||
$user = $I->grabRecord(User::className(), ['id' => $user->id]);
|
$user = $I->grabRecord(User::class, ['id' => $user->id]);
|
||||||
$token = $I->grabRecord(Token::className(), ['user_id' => $user->id, 'type' => Token::TYPE_CONFIRM_NEW_EMAIL]);
|
$token = $I->grabRecord(Token::class, ['user_id' => $user->id, 'type' => Token::TYPE_CONFIRM_NEW_EMAIL]);
|
||||||
/** @var yii\swiftmailer\Message $message */
|
/** @var \yii\mail\MessageInterface $message */
|
||||||
$message = $I->grabLastSentEmail();
|
$message = $I->grabLastSentEmail();
|
||||||
$I->assertArrayHasKey($user->unconfirmed_email, $message->getTo());
|
$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();
|
Yii::$app->user->logout();
|
||||||
|
|
||||||
$I->amGoingTo('log in using new email address before clicking the confirmation link');
|
$I->amGoingTo('log in using new email address before clicking the confirmation link');
|
||||||
|
|||||||
Reference in New Issue
Block a user