Ver Mensaje Individual
  #1 (permalink)  
Antiguo 02/03/2012, 18:49
Avatar de Bellenger
Bellenger
 
Fecha de Ingreso: noviembre-2004
Ubicación: En un lugar del Mundo...
Mensajes: 599
Antigüedad: 20 años
Puntos: 4
Implementar Acl

Hola a todos, aqui nuevamente con un inconveniente al momento de implementar ACL, hasta donde he leido y visto en ejemplos en la web... lo que hacen es definir cada permiso (allow), y denegacion (denied), de manera individual, hasta donde veo es beneficioso, del punto que me permite definir que actions puede ejecutar un usuario, pero en un sistema donde tengo distintos niveles de usuarios (roles), y distintos permisos, hacerlo al menos de la manera como demuestran en los ejemplos veo que es algo titanico :S aqui un ejemplo de como lo hacen :S
Código PHP:
   //Add a new role called "guest"
    
$this->addRole(new Zend_Acl_Role('guest'));
 
    
//Add a role called user, which inherits from guest
    
$this->addRole(new Zend_Acl_Role('user'), 'guest');
 
    
//Add a resource called page
    
$this->add(new Zend_Acl_Resource('page'));
 
    
//Add a resource called news, which inherits page
    
$this->add(new Zend_Acl_Resource('news'), 'page');
 
    
//Finally, we want to allow guests to view pages
    
$this->allow('guest''page''view');
 
    
//and users can comment news
    
$this->allow('user''news''comment'); 
En una aplicacion, sistema o lo que fuese, si lelgo a tener 5 roles ( mi actual caso), y N usuarios, este ejemplo no ayudaria mucho.... busque alternativas pero no logre encontrar mucha informacion de como implementar algo mas elaborado... me surgio la idea de colocar todos estos permisos en una tabla y que este disponible en cada request para verificar dicho permiso, que les parece esta idea? alguien que haya optado por la misma idea...o alguna otra solucion que le hayan dado....

Otro dificultad que encontre es como defino que modulo usara los ACL, actualmente tengo dos modulos tipicos (Public y Admin) y en mi caso el admin solo es el que necesita el ACL, como haria para indicaria que solo se use en el modulo Admin... otro detalle es como es como accedo a los datos del usuario, por que hasta el momento accedo asi:
Código PHP:
Zend_Auth::getInstance()... 
Alguna referencia... Gracias de antemano...
__________________
Un Caballero Jura Lealtad. Usa su espada para suprimir la Injusticia No Conoce el Odio y Tampoco el AMOR...