<?php

/**
 * 
 */
class FormularioCambiarPassword extends CFormModel {

    public $passwordAnterior;
    public $password;
    public $passwordRepetida;

    /**
     * 
     */
    public function rules() {
        return array(
            array('passwordAnterior, password, passwordRepetida', 'required'),
            array('password, passwordRepetida', 'length', 'max' => 128, 'min' => 6, 'message' => Yii::t('profind', 'La contraseña debe al menos 6 caracteres.')),
            array('passwordRepetida', 'compare', 'compareAttribute' => 'password', 'message' => Yii::t('profind', 'La confirmación de contraseña no coincide.')),
            array('passwordAnterior', 'comprobarPasswordAnterior'),
        );
    }

    /**
     * Comprobar que la anterior contraseña es correcta
     */
    public function comprobarPasswordAnterior($attribute, $params) {
        if (!$this->hasErrors()) {
            $usuario = Usuario::model()->findByPk(Yii::app()->user->id);
            $ph = new PasswordHash(
                    Yii::app()->params['phpass']['iteration_count_log2'], 
                    Yii::app()->params['phpass']['portable_hashes']
                );
            if (!$ph->checkPassword($this->passwordAnterior, $usuario->password))
                $this->addError($this->passwordAnterior, Yii::t('profind', 'La contraseña anterior no es correcta.'));
        }
    }
}