Pues yo tengo otra solución, yo intenté usar ACL pro  la hora de
cargargar lo ACO's me decia que estaba llamando a una clase
inexistente así que ahí lo dejé, intenté con Auth pero eso no lontendí
bien y habia que usar normas muy rigidas asi que me solución fue crear
mi propio app_controller con lo siguiente


class AppController extends Controller {
    function esAdmin() {
        if($this->Cookie->read('Usuario.admin') == 'si' || $this-
>Session->check('Usuario.admin')) {
                        return true;
                } else {
                        return false;
                }
    }

        function esUsuario() {
        if($this->Cookie->read('Usuario.username') != '' || $this-
>Session->check('Usuario.username')) {
                        return true;
                } else {
                        return false;
                }
    }

        function idUsuario() {
                if($this->Cookie->read('Usuario.username') != '') {
                        return $this->Cookie->read('Usuario.id');
                }
                if($this->Session->check('Usuario.username')) {
                        return $this->Session->read('Usuario.id');
                }
        }

        function nickUsuario() {
                if($this->Cookie->read('Usuario.username') != '') {
                        return $this->Cookie->read('Usuario.username');
                }
                if($this->Session->check('Usuario.username')) {
                        return $this->Session->read('Usuario.username');
                }
        }

        function nombreUsuario() {
                if($this->Cookie->read('Usuario.username') != '') {
                        return $this->Cookie->read('Usuario.nombre');
                }
                if($this->Session->check('Usuario.username')) {
                        return $this->Session->read('Usuario.nombre');
                }
        }

}


luego en el loguin hago este


function login() {
        if(!empty($this->data)) {
            $this->data['Usuario']['password'] = sha1($this-
>data['Usuario']['password']);
            $reg = $this->Usuario->find('all', array('conditions' =>
"Usuario.username='".$this->data['Usuario']['username']."' and
password ='".$this->data['Usuario']['password']."'"));

            // Me fijo que tenga un resultado
            if(sizeof($reg) == 1) {
                // Nos fijamos si esta activo
                if($reg[0]['Usuario']['activo'] == 1) {
                    // Asignamos Session o cookie
                    if($this->data['Usuario']['recordar'] == 'si') {
                        if($reg[0]['Usuario']['admin'] == 1) {
                            $this->Cookie-
>write('Usuario.admin','si',false, '500 Hours');
                        }
                        $this->Cookie->write('Usuario.id', $reg[0]
['Usuario']['id'], false, '500 Hours');
                        $this->Cookie->write('Usuario.username',
$reg[0]['Usuario']['username'], false, '500 Hours');
                        $this->Cookie->write('Usuario.nombre', $reg[0]
['Usuario']['nombre'], false, '500 Hours');
                        $this->Cookie->write('Usuario.apellidos',
$reg[0]['Usuario']['apellidos'], false, '500 Hours');
                    } else {
                           if($reg[0]['Usuario']['admin'] == 1) {
                              $this->Session->write('Usuario.admin',
'si');
                           }

                           $this->Session->write('Usuario.id', $reg[0]
['Usuario']['id']);
                           $this->Session->write('Usuario.username',
$reg[0]['Usuario']['username']);
                           $this->Session->write('Usuario.nombre',
$reg[0]['Usuario']['nombre']);
                           $this->Session->write('Usuario.apellidos',
$reg[0]['Usuario']['apellidos']);
                    }
                    $this->redirect('/');
                } else {
                    $this->Session->setFlash('No ha validado su
cuenta, debe ir a su E-Mail y seguir el enlace suministrado para
confirmar su Alta');
                    //$this->redirect('/');
                }
            } else {
                $this->Session->setFlash('Nombre de usuario o Password
incorrecto');
            }

            $this->set('reg', $reg);
        }
    }

On 25 ene, 05:26, jose javier lara torres
<[email protected]> wrote:
> Como bien dice Javier, en base de datos utiliza un campo llamado role.
>
> En ese campo, almacen el tipo de user que quieres(admin, user, etc). . Luego
> con el componente Auth, lees el usuario que se autentifica, y segun el role
> pues haces lo q tengas q hacer.
>
> un saludo.
>
> El 25 de enero de 2011 06:35, veimar jaime rivas cabezas <
> [email protected]> escribió:
>
>
>
> > Bueno mi consulta es la siguiente como puedo crear diferentes tipos de
> > usuarios los cuales pueden ser admin, premium, regular, particular
> > (cibernauta), los cuales al ser identificados por su cuenta de usuario
> > se les habra todos los privilegios que se deben disponer para el
> > usuario, tomando en cuenta que cada usuario tiene algunos privilegios
> > diferentes a los otros usuarios.
>
> > Bueno esa es mi consulta espero que me puedan guiar el como puedo
> > hacerlo gracias Saludos
>
> > --
> > Has recibido este mensaje porque estás suscrito al grupo "CakePHP-es" de
> > Grupos de Google.
> > Para publicar una entrada en este grupo, envía un correo electrónico a> 
> > [email protected].
> > Para anular tu suscripción a este grupo, envía un correo electrónico a> 
> > [email protected]<cakephp-es%[email protected]>
> > Para tener acceso a más opciones, visita el grupo en
> >http://groups.google.com/group/cakephp-es?hl=es.
>
> --
>  NunCa Nadiie hiizo tanTo daño en Tan poCo TiiempO

-- 
Has recibido este mensaje porque estás suscrito al grupo "CakePHP-es" de Grupos 
de Google.
Para publicar una entrada en este grupo, envía un correo electrónico a 
[email protected].
Para anular tu suscripción a este grupo, envía un correo electrónico a 
[email protected]
Para tener acceso a más opciones, visita el grupo en 
http://groups.google.com/group/cakephp-es?hl=es.

Responder a