Ver Mensaje Individual
  #6 (permalink)  
Antiguo 27/02/2013, 04:42
Avatar de Dundee
Dundee
 
Fecha de Ingreso: junio-2002
Ubicación: El Médano
Mensajes: 1.310
Antigüedad: 21 años, 10 meses
Puntos: 8
Respuesta: Duda de novato en YiiFramework

Me respondo a mi mismo. Acabo de caer en la cuenta de que el método login del modelo loginForm llama a dos métodos distintos con el mismo nombre:

1.
En rules(): en este caso hace referencia al método authenticate de la misma clase
Código:
array('password', 'authenticate'),
2.
En login(): en este caso hace referencia al método authenticate de la clase UserIdentity
Código:
$this->_identity=new UserIdentity($this->username,$this->password);
			$this->_identity->authenticate();
Y parece ser que en este método se altera el número de parámetros que se le pasan, es decir se hace un overriding del mismo.
Ahora me surgen más dudas, ya que el método authenticate de la clase UserIdentity consulta la contraseña de Gii que no se que tiene que ver con todo esto (ya que Gii lo he utilizado para crear el crude la aplicación , pero no se que pinta su contraseña en esto), la verdad que estoy un poco hecho un lio.

Metódo authenticate() de UserIdentity
Código:
class UserIdentity extends CUserIdentity
{
	/**
	 * Authenticates a user.
	 * @return boolean whether authentication succeeds.
	 */
	public function authenticate()
	{
		$password=Yii::app()->getModule('gii')->password;
		if($password===null)
			throw new CException('Please configure the "password" property of the "gii" module.');
		else if($password===false || $password===$this->password)
			$this->errorCode=self::ERROR_NONE;
        else
            $this->errorCode=self::ERROR_UNKNOWN_IDENTITY;
		return !$this->errorCode;
	}
}
__________________
Videotutoriales de Drupal