Your IP : 216.73.216.79


Current Path : /var/www/html/dvs/backend/modules/fruserdynav2/models/
Upload File :
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;
    }

}