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.