Foros del Web » Programando para Internet » PHP » Zend »

Resource id already exists in the ACL

Estas en el tema de Resource id already exists in the ACL en el foro de Zend en Foros del Web. 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  ...
  #1 (permalink)  
Antiguo 26/01/2011, 09:33
 
Fecha de Ingreso: enero-2011
Mensajes: 2
Antigüedad: 13 años, 10 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?
  #2 (permalink)  
Antiguo 26/01/2011, 09:52
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 11 meses
Puntos: 845
Respuesta: Resource id already exists in the ACL

Deberias cambiar la notacion, algo asi:

Código PHP:
Ver original
  1. ...
  2. $this->add(new Zend_Acl_Resource('libros'));
  3. $this->add(new Zend_Acl_Resource('libros:listar'),'libros');
  4. ...
  5. $this->add(new Zend_Acl_Resource('revistas'));
  6. $this->add(new Zend_Acl_Resource('revistas:listar'),'revistas');

Saludos.
__________________
http://es.phptherightway.com/
thats us riders :)

Etiquetas: acl
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:52.