Hola,
Mi problema viene porque tengo los credenciales de usuarios en una especie de marco común (otra web distinta), para que varias webs utilicen los mismos datos de usuario.
He estado mirando la parte de autentificación en otro proyecto que tengo y lo hacia de la siguiente forma
public function authenticate() {
$user = Usuario::model()->findByAttributes(array('usuario' => $this->username));
if ($user === null) {
....
donde Usuario es la clase modelo que gestiona la tabla usuarios, mi problema es que ese modelo está en otra aplicación, ¿Es posible conectar los usuarios de esta forma?
Gracias de antemano.
Edito----------------
He estado haciendo avances pero nada, al hacer login me aparece la típica página en blanco, he hecho lo siguiente:
He creado modelos de las tablas de los usuarios (de la otra base de datos)
Me he creado mi propio active record, aqui lo muestro
class MyActiveRecord extends CActiveRecord {
private static $dbmarco = null;
protected static function getMarcoDbConnection()
{
if (self::$dbmarco !== null)
return self::$dbmarco;
else{
self::$dbmarco = Yii::app()->dbmarco;
if (self::$dbmarco instanceof CDbConnection){
self::$dbmarco->setActive(true);
return self::$dbmarco;
}
else
throw new CDbException(Yii::t('yii','Active Record requires a "db" CDbConnection application component.'));
}
}
He hecho que alguno de mis modelos hereden de él y he añadido la siguiente función
public function getDbConnection()
{return self::getMarcoDbConnection();
}
este es mi código de authenticate
private $_id;
public function authenticate(){
$user=Administrador::model()->findByAttributes(array('administrador' => $this->login));
if ($user === null) {
$this->errorCode = self::ERROR_USERNAME_INVALID;
}
else {
if ($user->password !== $this->password) {
$this->errorCode = self::ERROR_PASSWORD_INVALID;
}
else{
$this->_id = $user->id;
$this->errorCode = self::ERROR_NONE;
}
}
return!$this->errorCode;
//Faltan los roles
}
Alguien sabe donde anda el error?? me estoy volviendo loco