Добавлена поддержка запоминания языка для аккаунта

Обновлена минимальная версия Yii2
Удалено немного хлама от Yii2 Advanced
Исправлены некоторые тесты
This commit is contained in:
ErickSkrauch
2016-05-13 12:03:00 +03:00
parent 65382fa1ce
commit ecd92b8fda
22 changed files with 175 additions and 124 deletions

View File

@@ -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;
}
}

View File

@@ -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.');