Форма запроса восстановления пароля теперь требует разгадки капчи

This commit is contained in:
ErickSkrauch 2017-04-18 19:08:11 +03:00
parent 0e2aff91d0
commit 00dd8e14b2
2 changed files with 16 additions and 0 deletions

View File

@ -1,6 +1,7 @@
<?php <?php
namespace api\models\authentication; namespace api\models\authentication;
use api\components\ReCaptcha\Validator as ReCaptchaValidator;
use api\models\base\ApiForm; use api\models\base\ApiForm;
use api\validators\TotpValidator; use api\validators\TotpValidator;
use common\helpers\Error as E; use common\helpers\Error as E;
@ -16,11 +17,15 @@ use yii\base\InvalidConfigException;
class ForgotPasswordForm extends ApiForm { class ForgotPasswordForm extends ApiForm {
use AccountFinder; use AccountFinder;
public $captcha;
public $login; public $login;
public $token; public $token;
public function rules() { public function rules() {
return [ return [
['captcha', ReCaptchaValidator::class],
['login', 'required', 'message' => E::LOGIN_REQUIRED], ['login', 'required', 'message' => E::LOGIN_REQUIRED],
['login', 'validateLogin'], ['login', 'validateLogin'],
['token', 'required', 'when' => function(self $model) { ['token', 'required', 'when' => function(self $model) {

View File

@ -1,6 +1,7 @@
<?php <?php
namespace codeception\api\unit\models\authentication; namespace codeception\api\unit\models\authentication;
use api\components\ReCaptcha\Validator as ReCaptchaValidator;
use api\models\authentication\ForgotPasswordForm; use api\models\authentication\ForgotPasswordForm;
use Codeception\Specify; use Codeception\Specify;
use common\models\EmailActivation; use common\models\EmailActivation;
@ -8,10 +9,20 @@ use OTPHP\TOTP;
use tests\codeception\api\unit\TestCase; use tests\codeception\api\unit\TestCase;
use tests\codeception\common\fixtures\AccountFixture; use tests\codeception\common\fixtures\AccountFixture;
use tests\codeception\common\fixtures\EmailActivationFixture; use tests\codeception\common\fixtures\EmailActivationFixture;
use Yii;
class ForgotPasswordFormTest extends TestCase { class ForgotPasswordFormTest extends TestCase {
use Specify; use Specify;
public function setUp() {
parent::setUp();
Yii::$container->set(ReCaptchaValidator::class, new class extends ReCaptchaValidator {
public function validateValue($value) {
return null;
}
});
}
public function _fixtures() { public function _fixtures() {
return [ return [
'accounts' => AccountFixture::class, 'accounts' => AccountFixture::class,