autenticar usuarios de la BD

buenas. primero que nada un saludo a todos.

mi problema es el siguiente, no logro hacer que mi aplicacion de yii pueda autenticar los usuarios que estan en mi tabla ‘user’ de mi base de datos. estoy empezando en yii y he tratado de seguir algunos ejemplos para modificar los archivos correspondientes en mi aplicacion.

ya ven que al crear el esqueleto de la aplicacion se crean 2 usuarios por defecto, ‘demo’ y ‘admin’, y pues ahora necesito eliminar esos 2 y que la aplicacion se vaya a la base de datos a checar los usuarios y sus claves ahi guardados.

intente seguir el ejemplo del blog e ir modificando el codigo que ahi mencionan en la parte de autenticar usuarios. pero nomas no me funciona.

como dije, estoy empezando en yii, tengo cierto conocimiento de PHP y MySQL. alguien podria orientarme que pasos debo realizar y que archivos modificar para lograr mi objetivo?

si hago los pasos que muestra el ejemplo del blog y me quedo con el siguiente error:


CException

Description


Property "User.salt" is not defined.

eso seria todo por ahora. y gracias de antemano por su atencion.

hasta pronto.

Hola amigo, tengo un libro que te puede servir , mi correo es diego.xibian@gmail.com , yo tambien estoy estudiando Yii y me parece lo maximo.

Saludos,

Diego

Para gestión de usuarios recomiendo usar o Yii-User (Solo usuarios, bastante flexible y sencillo) o Yii-User-Management (basado en Yii-User, agrega gestión de grupos y roles, pero tiene algunos bugs especialmente si se mezcla con otro gestor RBAC como SRBAC).

Saludos.

Muchas gracias por la orientacion. No se si deba abrir un nuevo topic sobre mi siguiente duda pero la pondre aqui por ahora.

Resulta que opte por probar la extension Yii-User-Management y realice todos los pasos de la instalacion utilizando una aplicacion yii recien creada. Todo bien hasta que intento loguearme al sistema usando el usuario por default ‘admin/admin’ me envia la siguiente excepcion:




CException

Description


CWebUser does not have a method named "isAdmin".

Source File


/home/marcomvh/framework/base/CComponent.php(266)


00254:     public function __call($name,$parameters)

00255:     {

00256:         if($this->_m!==null)

00257:         {

00258:             foreach($this->_m as $object)

00259:             {

00260:                 if($object->getEnabled() && method_exists($object,$name))

00261:                     return call_user_func_array(array($object,$name),$parameters);

00262:             }

00263:         }

00264:         if(class_exists('Closure', false) && $this->$name instanceof Closure)

00265:             return call_user_func_array($this->$name, $parameters);

00266: throw new CException(Yii::t('yii','{class} does not have a method named "{name}".',

00267:             array('{class}'=>get_class($this), '{name}'=>$name)));

00268:     }

00269: 

00270:     /**

00271:      * Returns the named behavior object.

00272:      * The name 'asa' stands for 'as a'.

00273:      * @param string the behavior name

00274:      * @return IBehavior the behavior object, or null if the behavior does not exist

00275:      * @since 1.0.2

00276:      */

00277:     public function asa($behavior)

00278:     {



solo hice exactamente lo que el archivo de instalacion indica. ni mas ni menos. ignoro en que me equivoque. alguien le sucedio algo similar a esto?

de momento revisare paso x paso nuevamente la instalacion. Gracias de antemano por su apoyo.

me respondo a mi mismo, ya pude entrar. ;D

mi problema estaba en el archivo main.php en la parte de agregar el modulo ‘user’. lo habia puesto en otro lugar y lo acomode bien y ya puedo loguearme al sistema.

suerte!

Disculpa!

Yo Estoy siguiendo el tutorial para instalar el user-management:

user-management

Y en el paso ocho me da error:


CException

Description

CWebUser and its behaviors do not have a method or closure named "isAdmin".

Source File

/var/www/yii/framework/base/CComponent.php(269)


257 public function __call($name,$parameters)

258 {

259 if($this->_m!==null)

260 {

261 foreach($this->_m as $object)

262 {

263 if($object->getEnabled() && method_exists($object,$name))

264 return call_user_func_array(array($object,$name),$parameters);

265 }

266 }

267 if(class_exists(‘Closure’, false) && $this->canGetProperty($name) && $this->$name instanceof Closure)

268 return call_user_func_array($this->$name, $parameters);

269 throw new CException(Yii::t(‘yii’,’{class} and its behaviors do not have a method or closure named “{name}”.’,

270 array(’{class}’=>get_class($this), ‘{name}’=>$name)));

271 }

272

273 /**

274 * Returns the named behavior object.

275 * The name ‘asa’ stands for ‘as a’.

276 * @param string $behavior the behavior name

277 * @return IBehavior the behavior object, or null if the behavior does not exist

278 * @since 1.0.2

279 */

280 public function asa($behavior)

281 {


Tu respuesta fue, que el módulo user lo cambiaste de lugar, pero no se donde colocarlo para corregirlo, podrías pegar el codigo por favor?

Gracias! :)

Encontré la solución en un tutorial de google

Cambié el codigo que se sobreescribe en el método de autenticación:




'components'=>array(

 'user'=>array(

      'class' => 'application.modules.user.components.YumWebUser',

      'allowAutoLogin'=>true,

      'loginUrl' => array('//user/user/login'),

    

    ),

  'import'=>array(  

  'application.modules.user.models.*',

   ),



Y con eso solucioné mi error

¿Te refieres a el archivo protected/config/main.php? Ayer estuve probando y también me salio ese error. :unsure: