Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Oi,
Estou dando em doido! :angry:
Eu estou tentando criar o Zend_Acl dinâmico, ou seja, a partir de resources guardados no banco.
No entanto estou com um problema por causa do Zend_Navigation, vou dar um exemplo do código que estou a produzir:
navigation.xml
<?xml version="1.0" encoding="UTF-8"?>
<configdata>
<nav>
<settings>
<label>Configurações</label>
<menu>sideNav</menu>
<uri>#</uri>
<resource>settings</resource>
<pages>
<sitesettings>
<label>Site</label>
<module>admin</module>
<controller>settings</controller>
<action>site</action>
<resource>site:settings</resource>
</sitesettings>
<adminsettings>
<label>Admin</label>
<module>admin</module>
<controller>settings</controller>
<action>admin</action>
<resource>admin:settings</resource>
</adminsettings>
</pages>
</settings>
</nav>
</configdata>
está correcto assim?
agora no meu acl eu vou declarar o seguinte:
$this->addRole( new Zend_Acl_Role( 'admin') );
$this->add( new Zend_Acl_Resource( 'settings' ) );
$this->add( new Zend_Acl_Resource( 'site' ), 'settings' );
$this->add( new Zend_Acl_Resource( 'admin' ), 'settings' );
// Até aqui está tudo ok? Eu penso que sim... Eu estou a colocar resource no site e admin porque eu em muitos casos vou ter mais dependências...
$this->allow( 'admin', 'settings' ); // Aqui começa o meu problema!
Atenção o problema não está no acesso ao resources, aqui consoante os acessos que eu dou, é onde o user admin consegue aceder...
O problema está quando faço o echo $this->navigation()->menu()->render(), neste caso ele funciona e apresenta-me o menu correcto, no entanto se eu acrescentar isto ao código:
$this->allow( 'admin', 'settings', 'site' ); // Aqui começa o meu problema!
ele supostamente era para apresentar:
<ul>
<li>Configurações
<ul>
<li>Site</li>
</ul>
</li>
</ul>
e ele não me apresenta nada! no entanto se não colocar o param 'site', ele apresenta tudo!
<ul>
<li>Configurações
<ul>
<li>Site</li>
<li>Admin</li>
</ul>
</li>
</ul>
Conclusão, eu consigo criar regras para os utilizadores, no entanto no zend_navigation não consigo fazer com que essas regras sejam obedecidas na totalidade...
Se eu quiser dar autorização total para Configurações, o zend_navigation corre 100%, no entanto seu eu der somente autorização para Configurações>Site, o zend_navigation não me mostra o menu Configurações!
Supostamente não era para mostrar o menu Configurações só com a opção Site?
Preciso mm de uma grande ajuda!!
[]
Carregando comentários...