<?php

/**
 * 
 */
class FormularioEntradaCambiarPassword extends CFormModel {

    public $key;
    public $email;
    public $password;
    public $passwordRepetida;

    /**
     * 
     */
    public function rules() {
        return array(
            array('key, email, password, passwordRepetida', 'required'),
            array('email', 'email'),
            array('email', 'existeEmail'),
            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('key', 'comprobarKey'),
        );
    }

    /**
     * Comprobar que existe un usuario con el email recibido.
     */
    public function existeEmail($attribute, $params) {
        if (!$this->hasErrors()) {
            $usuario = Usuario::model()->findByAttributes(array(
                'email' => $this->email
            ));
            if (!isset($usuario))
                $this->addError($this->key, Yii::t('profind', 'Los datos para cambiar la contraseña no son válidos.'));
        }
    }
    
    /**
     * Comprobar que la key recibida corresponde al email recibido.
     */
    public function comprobarKey($attribute, $params) {
        if (!$this->hasErrors()) {
            $usuario = Usuario::model()->findByAttributes(array(
                'clave_seguridad' => $this->key,
                'email' => $this->email
            ));
            if (!isset($usuario))
                $this->addError($this->key, Yii::t('profind', 'Los datos para cambiar la contraseña no son válidos.'));
        }
    }
}