Ver Mensaje Individual
  #1 (permalink)  
Antiguo 26/01/2011, 09:33
francuello
 
Fecha de Ingreso: enero-2011
Mensajes: 2
Antigüedad: 13 años, 3 meses
Puntos: 0
Resource id already exists in the ACL

Hola gente... les cuento, estoy teniendo un pequeño problema con Zend_Acl.

Esta es mi clase para trabajar con las reglas:

Código PHP:
<?php
class Model_SabeAcl extends Zend_Acl {
    
    public function 
__construct(){
        
// se dan de alta los recursos... acciones + controladores
        
$this->add(new Zend_Acl_Resource('index'));
        
$this->add(new Zend_Acl_Resource('logout'));
        
$this->add(new Zend_Acl_Resource('error'));
        
        
$this->add(new Zend_Acl_Resource('autenticacion'));
        
$this->add(new Zend_Acl_Resource('login'),'autenticacion');
        
        
$this->add(new Zend_Acl_Resource('libros'));
        
$this->add(new Zend_Acl_Resource('listar'),'libros');
        
$this->add(new Zend_Acl_Resource('agregar'),'libros');
        
$this->add(new Zend_Acl_Resource('eliminar'),'libros');
        
$this->add(new Zend_Acl_Resource('editar'),'libros');

        
$this->add(new Zend_Acl_Resource('revistas'));
        
$this->add(new Zend_Acl_Resource('listar'),'revistas');
        
$this->add(new Zend_Acl_Resource('agregar'),'revistas');
        
$this->add(new Zend_Acl_Resource('eliminar'),'revistas');
        
$this->add(new Zend_Acl_Resource('editar'),'revistas');
        
        
// Se dan de alta los roles de los usuarios
        
$this->addRole(new Zend_Acl_Role('Usuario'));
        
$this->addRole(new Zend_Acl_Role('Jefe'),'Usuario');
        
$this->addRole(new Zend_Acl_Role('Administrador'),'Jefe');
    
        
// Ahora se asignan los recursos a los roles
        
$this->allow(null,'error');
        
        
$this->allow('Usuario','libros','listar');
        
$this->allow('Administrador','libros','agregar');
        
$this->allow('Administrador','libros','eliminar');
        
$this->allow('Administrador','libros','editar');
        
        
$this->allow('Usuario','revistas','listar');
        
$this->allow('Administrador','revistas','agregar');
        
$this->allow('Administrador','revistas','eliminar');
        
$this->allow('Administrador','revistas','editar');
        
    }
}
Segùn lo que tengo entendido, deberia funcionar bien, pero al ejecutar la aplicacion me da el error:
Código:
Fatal error: Uncaught exception 'Zend_Acl_Exception' with message 'Resource id 'listar' already exists in the ACL' in C:\Documents and Settings...
Por lo que entiendo, el recurso listar ya existe, me imagino que el error se produce al momento de agregar el recurso "listar" de "revistas", ya que anteriormente agrego "listar" de "libros".

La pregunta es la siguiente:

Como hago para solucionar esto?