| Current Path : /var/www/html/dvs/backend/modules/fruserdynav2/models/ |
| Current File : /var/www/html/dvs/backend/modules/fruserdynav2/models/ChangePassword.php |
<?php
namespace backend\modules\fruserdynav2\models;
use Yii;
class ChangePassword extends \yii\db\ActiveRecord {
public $old_password;
public $new_password;
public $repeat_password;
private $_user;
public static function tableName() {
return 'frontend_user';
}
public function rules() {
return [
[['old_password', 'new_password', 'repeat_password'], 'required'],
['old_password', 'validatePassword'],
['repeat_password', 'compare', 'compareAttribute' => 'new_password'],
];
}
public function attributeLabels() {
return [
'old_password' => Yii::t('app', 'Current Password'),
'new_password' => Yii::t('app', 'New Password'),
'repeat_password' => Yii::t('app', 'Repeat New Password'),
];
}
public function validatePassword($attribute, $params) {
if (!$this->hasErrors()) {
$user = $this->getUser();
$getHashedPassword = self::find()->where(['id' => Yii::$app->user->identity->id])->one();
$hashedPassword = $getHashedPassword->password_hash;
if (!Yii::$app->getSecurity()->validatePassword($this->old_password, $hashedPassword)) {
$this->addError($attribute, 'Current password wrong');
}
}
}
public function getUser() {
if ($this->_user === false) {
$this->_user = self::findByUsername(Yii::$app->user->identity->username);
}
return $this->_user;
}
}