Rework email_activation model, get rid of behaviors, use json column to store additional data

This commit is contained in:
ErickSkrauch
2019-12-21 01:23:58 +03:00
parent 22e8158581
commit 666213afc7
26 changed files with 254 additions and 454 deletions

View File

@@ -17,11 +17,11 @@ class EmailVerificationAction extends BaseAccountAction {
return [];
}
/** @var \common\models\EmailActivation $emailActivation */
$emailActivation = $model->getEmailActivation();
return [
'canRepeatIn' => $emailActivation->canRepeatIn(),
'repeatFrequency' => $emailActivation->repeatTimeout,
'canRepeatIn' => $emailActivation->canResendAt()->getTimestamp(),
];
}

View File

@@ -31,7 +31,7 @@ class SendEmailVerificationForm extends AccountActionForm {
public function validateFrequency(string $attribute): void {
if (!$this->hasErrors()) {
$emailConfirmation = $this->getEmailActivation();
if ($emailConfirmation !== null && !$emailConfirmation->canRepeat()) {
if ($emailConfirmation !== null && !$emailConfirmation->canResend()) {
$this->addError($attribute, E::RECENTLY_SENT_MESSAGE);
}
}
@@ -80,6 +80,8 @@ class SendEmailVerificationForm extends AccountActionForm {
* The method is designed to check if the E-mail change messages are sent too often.
* Including checking for the confirmation of the new E-mail type, because when you go to this step,
* the activation of the previous step is removed.
*
* @return CurrentEmailConfirmation|\common\models\confirmations\NewEmailConfirmation
*/
public function getEmailActivation(): ?EmailActivation {
return $this->getAccount()