Ver Mensaje Individual
  #1 (permalink)  
Antiguo 10/07/2012, 11:46
iovan
 
Fecha de Ingreso: septiembre-2007
Ubicación: PyRoot
Mensajes: 1.515
Antigüedad: 17 años, 3 meses
Puntos: 188
Autorización con Zend_Acl

Hola amigos que tal.

Maravilloso el mundo de ZendFramework cierto , pero tengo una duda pequeña pero no he podido resolverla ni leyendo la documentación de este link http://manual.zfdes.com/es/zend.acl....tion.resources

por que en la documentación oficial no se que le pasa...

En fín. Les cuento.

Suponiendo 2 controladores cuyas acciones se llaman igual

Controlador Customer | Controlador Employee

Ambos tiene acciones llamadas : add, edit

¿Por qué no me funciona cuando hago esto ?

Código PHP:
Ver original
  1. $this->add(new Zend_Acl_Resource('customer'));
  2.         $this->add(new Zend_Acl_Resource('add'), 'customer');
  3.         $this->add(new Zend_Acl_Resource('edit'), 'customer');
  4.  
  5. $this->add(new Zend_Acl_Resource('employee'));
  6.         $this->add(new Zend_Acl_Resource('add'), 'employee');
  7.         $this->add(new Zend_Acl_Resource('edit'), 'employee');
  8.  
  9. $this->addRole(new Zend_Acl_Role(6));
  10.  $this->addRole(new Zend_Acl_Role(5),6);
  11.  
  12. $this->allow(5,'employee','add');
  13. $this->allow(5,'employee','edit');
  14.  
  15. $this->allow(5,'customer','edit');
  16. $this->allow(5,'customer','add');

Me he dado cuenta que si las acciones se repiten es cuando dan el problema, por ejemplo si cambio de nombre a los actions de alguno de los controllers de tal manera que quedase así:

Código PHP:
Ver original
  1. $this->add(new Zend_Acl_Resource('customer'));
  2.         $this->add(new Zend_Acl_Resource('add'), 'customer');
  3.         $this->add(new Zend_Acl_Resource('edit'), 'customer');
  4.  
  5. $this->add(new Zend_Acl_Resource('employee'));
  6.         $this->add(new Zend_Acl_Resource('agregar'), 'employee');
  7.         $this->add(new Zend_Acl_Resource('editar'), 'employee');
  8.  
  9. $this->addRole(new Zend_Acl_Role(6));
  10.  $this->addRole(new Zend_Acl_Role(5),6);
  11.  
  12. $this->allow(5,'employee','agregar');
  13. $this->allow(5,'employee','editar');
  14.  
  15. $this->allow(5,'customer','edit');
  16. $this->allow(5,'customer','add');

Entonces todo correcto.

El error del que les hablo el servidor lo responde como: Error HTTP 500 (Internal Server Error)

Les agradezco mucho la ayuda. Saludos
__________________
Si quieres agradecer el triangulo obscuro de la parte derecha debes presionar +.