Добавлена защита от регистрации на сервисы 10-минутной почты

This commit is contained in:
ErickSkrauch 2016-05-01 19:43:28 +03:00
parent 45b1f43d09
commit 479f633d3f
3 changed files with 10 additions and 1 deletions

View File

@ -3,6 +3,7 @@ namespace common\models;
use common\components\UserPass;
use damirka\JWT\UserTrait;
use Ely\Yii2\TempmailValidator;
use Yii;
use yii\base\InvalidConfigException;
use yii\base\NotSupportedException;
@ -72,6 +73,7 @@ class Account extends ActiveRecord implements IdentityInterface {
[['email'], 'required', 'message' => 'error.email_required'],
[['email'], 'string', 'max' => 255, 'tooLong' => 'error.email_too_long'],
[['email'], 'email', 'checkDNS' => true, 'enableIDN' => true, 'message' => 'error.email_invalid'],
[['email'], TempmailValidator::class, 'message' => 'error.email_is_tempmail'],
[['email'], 'unique', 'message' => 'error.email_not_available'],
];
}

View File

@ -23,7 +23,8 @@
"yiisoft/yii2-redis": "~2.0.0",
"damirka/yii2-jwt": "~0.1.0",
"guzzlehttp/guzzle": "~5.3.0",
"php-amqplib/php-amqplib": "~2.6.2"
"php-amqplib/php-amqplib": "~2.6.2",
"ely/yii2-tempmail-validator": "~1.0.0"
},
"require-dev": {
"yiisoft/yii2-codeception": "*",

View File

@ -103,6 +103,12 @@ class AccountTest extends DbTestCase {
expect($model->getErrors('email'))->equals(['error.email_invalid']);
});
$this->specify('email should be not tempmail', function() {
$model = new Account(['email' => 'c1414001@trbvn.com']);
expect($model->validate(['email']))->false();
expect($model->getErrors('email'))->equals(['error.email_is_tempmail']);
});
$this->specify('email should be unique', function() {
$model = new Account(['email' => $this->accounts['admin']['email']]);
expect($model->validate('email'))->false();