mirror of
https://github.com/elyby/accounts.git
synced 2025-05-31 14:11:46 +05:30
Добавлена поддержка запоминания языка для аккаунта
Обновлена минимальная версия Yii2 Удалено немного хлама от Yii2 Advanced Исправлены некоторые тесты
This commit is contained in:
@@ -1,60 +0,0 @@
|
||||
<?php
|
||||
namespace api\models;
|
||||
|
||||
use common\models\Account;
|
||||
use yii\base\Model;
|
||||
|
||||
/**
|
||||
* Password reset request form
|
||||
*/
|
||||
class PasswordResetRequestForm extends Model
|
||||
{
|
||||
public $email;
|
||||
|
||||
/**
|
||||
* @inheritdoc
|
||||
*/
|
||||
public function rules()
|
||||
{
|
||||
return [
|
||||
['email', 'filter', 'filter' => 'trim'],
|
||||
['email', 'required'],
|
||||
['email', 'email'],
|
||||
['email', 'exist',
|
||||
'targetClass' => '\common\models\User',
|
||||
'filter' => ['status' => Account::STATUS_ACTIVE],
|
||||
'message' => 'There is no user with such email.'
|
||||
],
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* Sends an email with a link, for resetting the password.
|
||||
*
|
||||
* @return boolean whether the email was send
|
||||
*/
|
||||
public function sendEmail()
|
||||
{
|
||||
/* @var $user Account */
|
||||
$user = Account::findOne([
|
||||
'status' => Account::STATUS_ACTIVE,
|
||||
'email' => $this->email,
|
||||
]);
|
||||
|
||||
if ($user) {
|
||||
if (!Account::isPasswordResetTokenValid($user->password_reset_token)) {
|
||||
$user->generatePasswordResetToken();
|
||||
}
|
||||
|
||||
if ($user->save()) {
|
||||
return \Yii::$app->mailer->compose(['html' => 'passwordResetToken-html', 'text' => 'passwordResetToken-text'], ['user' => $user])
|
||||
->setFrom([\Yii::$app->params['supportEmail'] => \Yii::$app->name . ' robot'])
|
||||
->setTo($this->email)
|
||||
->setSubject('Password reset for ' . \Yii::$app->name)
|
||||
->send();
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
@@ -7,6 +7,7 @@ use common\components\UserFriendlyRandomKey;
|
||||
use common\models\Account;
|
||||
use common\models\confirmations\RegistrationConfirmation;
|
||||
use common\models\EmailActivation;
|
||||
use common\validators\LanguageValidator;
|
||||
use common\validators\PasswordValidate;
|
||||
use Ramsey\Uuid\Uuid;
|
||||
use Yii;
|
||||
@@ -20,6 +21,7 @@ class RegistrationForm extends ApiForm {
|
||||
public $password;
|
||||
public $rePassword;
|
||||
public $rulesAgreement;
|
||||
public $lang;
|
||||
|
||||
public function rules() {
|
||||
return [
|
||||
@@ -33,6 +35,8 @@ class RegistrationForm extends ApiForm {
|
||||
['rePassword', 'required', 'message' => 'error.rePassword_required'],
|
||||
['password', PasswordValidate::class],
|
||||
['rePassword', 'validatePasswordAndRePasswordMatch'],
|
||||
|
||||
['lang', LanguageValidator::class],
|
||||
];
|
||||
}
|
||||
|
||||
@@ -75,6 +79,7 @@ class RegistrationForm extends ApiForm {
|
||||
$account->email = $this->email;
|
||||
$account->username = $this->username;
|
||||
$account->password = $this->password;
|
||||
$account->lang = $this->lang;
|
||||
$account->status = Account::STATUS_REGISTERED;
|
||||
if (!$account->save()) {
|
||||
throw new ErrorException('Account not created.');
|
||||
|
Reference in New Issue
Block a user