Browse Source

Fixed signup/restore password flow

tags/2.0.0-beta
Alexander Makarov 11 years ago
parent
commit
d13ed43212
  1. 10
      apps/advanced/common/models/User.php
  2. 12
      apps/advanced/frontend/controllers/SiteController.php
  3. 2
      apps/advanced/frontend/models/PasswordResetRequestForm.php
  4. 2
      apps/advanced/frontend/models/SignupForm.php

10
apps/advanced/common/models/User.php

@ -32,6 +32,8 @@ class User extends ActiveRecord implements IdentityInterface
/** @var User $user */
$user = new static();
$user->setAttributes($attributes);
$user->setPassword($attributes['password']);
$user->generateAuthKey();
if ($user->save()) {
return $user;
} else {
@ -142,6 +144,14 @@ class User extends ActiveRecord implements IdentityInterface
}
/**
* Generates "remember me" authentication key
*/
public function generateAuthKey()
{
$this->auth_key = Security::generateRandomKey();
}
/**
* Generates new password reset token
*/
public function generatePasswordResetToken()

12
apps/advanced/frontend/controllers/SiteController.php

@ -122,11 +122,13 @@ class SiteController extends Controller
public function actionRequestPasswordReset()
{
$model = new PasswordResetRequestForm();
if ($model->load(Yii::$app->request->post()) && $model->sendEmail()) {
Yii::$app->getSession()->setFlash('success', 'Check your email for further instructions.');
return $this->goHome();
} else {
Yii::$app->getSession()->setFlash('error', 'There was an error sending email.');
if ($model->load(Yii::$app->request->post())) {
if ($model->sendEmail()) {
Yii::$app->getSession()->setFlash('success', 'Check your email for further instructions.');
return $this->goHome();
} else {
Yii::$app->getSession()->setFlash('error', 'Sorry, we are unable to reset password for email provided.');
}
}
return $this->render('requestPasswordResetToken', [

2
apps/advanced/frontend/models/PasswordResetRequestForm.php

@ -20,7 +20,7 @@ class PasswordResetRequestForm extends Model
['email', 'filter', 'filter' => 'trim'],
['email', 'required'],
['email', 'email'],
['email', 'exist', 'targetClass' => 'User', 'message' => 'There is no user with such email.'],
['email', 'exist', 'targetClass' => '\common\models\User', 'message' => 'There is no user with such email.'],
];
}

2
apps/advanced/frontend/models/SignupForm.php

@ -27,7 +27,7 @@ class SignupForm extends Model
['email', 'filter', 'filter' => 'trim'],
['email', 'required'],
['email', 'email'],
['email', 'unique', 'targetClass' => 'User', 'message' => 'This email address has already been taken.'],
['email', 'unique', 'targetClass' => '\common\models\User', 'message' => 'This email address has already been taken.'],
['password', 'required'],
['password', 'string', 'min' => 6],

Loading…
Cancel
Save