Логика проверки ключа из KeyConfirmationForm вынесена в отдельный валидатор

У EmailActivationFixture зафиксирован стандартный путь к файлу данных
This commit is contained in:
ErickSkrauch
2016-05-15 01:33:21 +03:00
parent 0ba1be27e8
commit e2e31c3720
8 changed files with 133 additions and 92 deletions

View File

@@ -1,6 +1,7 @@
<?php
namespace api\models\base;
use api\validators\EmailActivationKeyValidator;
use common\models\EmailActivation;
class KeyConfirmationForm extends ApiForm {
@@ -13,27 +14,10 @@ class KeyConfirmationForm extends ApiForm {
return [
// TODO: нужно провалидировать количество попыток ввода кода для определённого IP адреса и в случае чего запросить капчу
['key', 'required', 'message' => 'error.key_is_required'],
['key', 'validateKey'],
['key', 'validateKeyExpiration'],
['key', EmailActivationKeyValidator::class],
];
}
public function validateKey($attribute) {
if (!$this->hasErrors()) {
if ($this->getActivationCodeModel() === null) {
$this->addError($attribute, "error.{$attribute}_not_exists");
}
}
}
public function validateKeyExpiration($attribute) {
if (!$this->hasErrors()) {
if ($this->getActivationCodeModel()->isExpired()) {
$this->addError($attribute, "error.{$attribute}_expire");
}
}
}
/**
* @return EmailActivation|null
*/