Commit 86a325610d4af33c6a62eda10c2244084ede9cdc
1 parent
dee603c7
restet password mail
Showing
1 changed file
with
50 additions
and
1 deletions
Show diff stats
common/models/Customer.php
| @@ -3,6 +3,10 @@ | @@ -3,6 +3,10 @@ | ||
| 3 | namespace common\models; | 3 | namespace common\models; |
| 4 | use common\widgets\Mailer; | 4 | use common\widgets\Mailer; |
| 5 | use Yii; | 5 | use Yii; |
| 6 | +use Yii; | ||
| 7 | +use yii\base\NotSupportedException; | ||
| 8 | +use yii\behaviors\TimestampBehavior; | ||
| 9 | +use yii\db\ActiveRecord; | ||
| 6 | 10 | ||
| 7 | class Customer extends \yii\db\ActiveRecord implements \yii\web\IdentityInterface | 11 | class Customer extends \yii\db\ActiveRecord implements \yii\web\IdentityInterface |
| 8 | { | 12 | { |
| @@ -210,5 +214,50 @@ class Customer extends \yii\db\ActiveRecord implements \yii\web\IdentityInterfac | @@ -210,5 +214,50 @@ class Customer extends \yii\db\ActiveRecord implements \yii\web\IdentityInterfac | ||
| 210 | 214 | ||
| 211 | public function getImageProfile(){ | 215 | public function getImageProfile(){ |
| 212 | return !empty($this->image) ? $this->image : 'user_photo.png'; | 216 | return !empty($this->image) ? $this->image : 'user_photo.png'; |
| 213 | - } | 217 | + } |
| 218 | + | ||
| 219 | + public static function findByPasswordResetToken($token) | ||
| 220 | + { | ||
| 221 | + if (!static::isPasswordResetTokenValid($token)) { | ||
| 222 | + return null; | ||
| 223 | + } | ||
| 224 | + | ||
| 225 | + return static::findOne([ | ||
| 226 | + 'password_reset_token' => $token, | ||
| 227 | + 'status' => self::STATUS_ACTIVE, | ||
| 228 | + ]); | ||
| 229 | + } | ||
| 230 | + | ||
| 231 | + /** | ||
| 232 | + * Finds out if password reset token is valid | ||
| 233 | + * | ||
| 234 | + * @param string $token password reset token | ||
| 235 | + * @return boolean | ||
| 236 | + */ | ||
| 237 | + public static function isPasswordResetTokenValid($token) | ||
| 238 | + { | ||
| 239 | + if (empty($token)) { | ||
| 240 | + return false; | ||
| 241 | + } | ||
| 242 | + | ||
| 243 | + $timestamp = (int) substr($token, strrpos($token, '_') + 1); | ||
| 244 | + $expire = Yii::$app->params['user.passwordResetTokenExpire']; | ||
| 245 | + return $timestamp + $expire >= time(); | ||
| 246 | + } | ||
| 247 | + | ||
| 248 | + /** | ||
| 249 | + * Generates new password reset token | ||
| 250 | + */ | ||
| 251 | + public function generatePasswordResetToken() | ||
| 252 | + { | ||
| 253 | + $this->password_reset_token = Yii::$app->security->generateRandomString() . '_' . time(); | ||
| 254 | + } | ||
| 255 | + | ||
| 256 | + /** | ||
| 257 | + * Removes password reset token | ||
| 258 | + */ | ||
| 259 | + public function removePasswordResetToken() | ||
| 260 | + { | ||
| 261 | + $this->password_reset_token = null; | ||
| 262 | + } | ||
| 214 | } | 263 | } |