mirror of
https://github.com/elyby/accounts.git
synced 2025-05-31 14:11:46 +05:30
Упразднён контроллер PasswordProtectedController и заменён на валидатор PasswordRequiredValidator
Реорганизованы тесты для ChangeUsernameFormTest
This commit is contained in:
@@ -1,31 +0,0 @@
|
||||
<?php
|
||||
namespace api\models\base;
|
||||
|
||||
use common\helpers\Error as E;
|
||||
use Yii;
|
||||
|
||||
class PasswordProtectedForm extends ApiForm {
|
||||
|
||||
public $password;
|
||||
|
||||
public function rules() {
|
||||
return [
|
||||
[['password'], 'required', 'message' => E::PASSWORD_REQUIRED],
|
||||
[['password'], 'validatePassword'],
|
||||
];
|
||||
}
|
||||
|
||||
public function validatePassword() {
|
||||
if (!$this->getAccount()->validatePassword($this->password)) {
|
||||
$this->addError('password', E::PASSWORD_INVALID);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @return \common\models\Account
|
||||
*/
|
||||
protected function getAccount() {
|
||||
return Yii::$app->user->identity;
|
||||
}
|
||||
|
||||
}
|
@@ -1,7 +1,8 @@
|
||||
<?php
|
||||
namespace api\models\profile\ChangeEmail;
|
||||
|
||||
use api\models\base\PasswordProtectedForm;
|
||||
use api\models\base\ApiForm;
|
||||
use api\validators\PasswordRequiredValidator;
|
||||
use common\helpers\Error as E;
|
||||
use common\models\Account;
|
||||
use common\models\confirmations\CurrentEmailConfirmation;
|
||||
@@ -11,10 +12,12 @@ use yii\base\ErrorException;
|
||||
use yii\base\Exception;
|
||||
use yii\base\InvalidConfigException;
|
||||
|
||||
class InitStateForm extends PasswordProtectedForm {
|
||||
class InitStateForm extends ApiForm {
|
||||
|
||||
public $email;
|
||||
|
||||
public $password;
|
||||
|
||||
private $account;
|
||||
|
||||
public function __construct(Account $account, array $config = []) {
|
||||
@@ -28,9 +31,10 @@ class InitStateForm extends PasswordProtectedForm {
|
||||
}
|
||||
|
||||
public function rules() {
|
||||
return array_merge(parent::rules(), [
|
||||
return [
|
||||
['email', 'validateFrequency'],
|
||||
]);
|
||||
['password', PasswordRequiredValidator::class, 'account' => $this->account],
|
||||
];
|
||||
}
|
||||
|
||||
public function validateFrequency($attribute) {
|
||||
@@ -90,7 +94,6 @@ class InitStateForm extends PasswordProtectedForm {
|
||||
}
|
||||
|
||||
public function sendCode(EmailActivation $code) {
|
||||
/** @var \yii\swiftmailer\Mailer $mailer */
|
||||
$mailer = Yii::$app->mailer;
|
||||
$fromEmail = Yii::$app->params['fromEmail'];
|
||||
if (!$fromEmail) {
|
||||
@@ -98,7 +101,6 @@ class InitStateForm extends PasswordProtectedForm {
|
||||
}
|
||||
|
||||
$acceptor = $code->account;
|
||||
/** @var \yii\swiftmailer\Message $message */
|
||||
$message = $mailer->compose([
|
||||
'html' => '@app/mails/current-email-confirmation-html',
|
||||
'text' => '@app/mails/current-email-confirmation-text',
|
||||
|
@@ -1,7 +1,8 @@
|
||||
<?php
|
||||
namespace api\models\profile;
|
||||
|
||||
use api\models\base\PasswordProtectedForm;
|
||||
use api\models\base\ApiForm;
|
||||
use api\validators\PasswordRequiredValidator;
|
||||
use common\helpers\Error as E;
|
||||
use common\models\Account;
|
||||
use common\validators\PasswordValidate;
|
||||
@@ -9,7 +10,7 @@ use Yii;
|
||||
use yii\base\ErrorException;
|
||||
use yii\helpers\ArrayHelper;
|
||||
|
||||
class ChangePasswordForm extends PasswordProtectedForm {
|
||||
class ChangePasswordForm extends ApiForm {
|
||||
|
||||
public $newPassword;
|
||||
|
||||
@@ -17,6 +18,8 @@ class ChangePasswordForm extends PasswordProtectedForm {
|
||||
|
||||
public $logoutAll;
|
||||
|
||||
public $password;
|
||||
|
||||
/**
|
||||
* @var \common\models\Account
|
||||
*/
|
||||
@@ -37,6 +40,7 @@ class ChangePasswordForm extends PasswordProtectedForm {
|
||||
['newPassword', PasswordValidate::class],
|
||||
['newRePassword', 'validatePasswordAndRePasswordMatch'],
|
||||
['logoutAll', 'boolean'],
|
||||
['password', PasswordRequiredValidator::class, 'account' => $this->_account],
|
||||
]);
|
||||
}
|
||||
|
||||
@@ -49,7 +53,8 @@ class ChangePasswordForm extends PasswordProtectedForm {
|
||||
}
|
||||
|
||||
/**
|
||||
* @return boolean
|
||||
* @return bool
|
||||
* @throws ErrorException
|
||||
*/
|
||||
public function changePassword() : bool {
|
||||
if (!$this->validate()) {
|
||||
|
@@ -1,7 +1,9 @@
|
||||
<?php
|
||||
namespace api\models\profile;
|
||||
|
||||
use api\models\base\PasswordProtectedForm;
|
||||
use api\models\AccountIdentity;
|
||||
use api\models\base\ApiForm;
|
||||
use api\validators\PasswordRequiredValidator;
|
||||
use common\helpers\Error;
|
||||
use common\helpers\Amqp;
|
||||
use common\models\amqp\UsernameChanged;
|
||||
@@ -10,17 +12,19 @@ use Exception;
|
||||
use PhpAmqpLib\Message\AMQPMessage;
|
||||
use Yii;
|
||||
use yii\base\ErrorException;
|
||||
use yii\helpers\ArrayHelper;
|
||||
|
||||
class ChangeUsernameForm extends PasswordProtectedForm {
|
||||
class ChangeUsernameForm extends ApiForm {
|
||||
|
||||
public $username;
|
||||
|
||||
public $password;
|
||||
|
||||
public function rules() {
|
||||
return ArrayHelper::merge(parent::rules(), [
|
||||
return [
|
||||
['username', 'required', 'message' => Error::USERNAME_REQUIRED],
|
||||
['username', 'validateUsername'],
|
||||
]);
|
||||
['password', PasswordRequiredValidator::class],
|
||||
];
|
||||
}
|
||||
|
||||
public function validateUsername($attribute) {
|
||||
@@ -84,4 +88,8 @@ class ChangeUsernameForm extends PasswordProtectedForm {
|
||||
Amqp::sendToEventsExchange('accounts.username-changed', $message);
|
||||
}
|
||||
|
||||
protected function getAccount() : AccountIdentity {
|
||||
return Yii::$app->user->identity;
|
||||
}
|
||||
|
||||
}
|
||||
|
Reference in New Issue
Block a user