Hola!
Acertar con tu problema sin poder "debujearlo" ni tenerlo todo, resulta un poco difícil, sin ser yo ningún guru del ZF, se me antoja tu código algo raro, deberías repasar el proceso "Dispach", el predispach() del plugin se ejecuta antes que el controler con lo cual puedes entrar en un bucle sin fin.
Según veo, lo común es controlar el proceso de privilegios a nivel de Controlador, no a tan bajo nivel de un Plugin yo por ejemplo tengo estas clases :
Código PHP:
Ver originalclass Valclip_Controller_Action extends Zend_Controller_Action
class Valclip_Controller_Admin extends Valclip_Controller_Action
class Valclip_Controller_Ajax extends Valclip_Controller_Action
abstract class Valclip_Controller_Editor extends Valclip_Controller_Admin
Dentro de Action realizo las comprobaciones (en seu do codigo)
Código PHP:
Ver originalclass Valclip_Controller_Action extends Zend_Controller_Action
{
public function init ()
{
.......
$service = Valclip_Service_ServiceAbstract::getService(
'Default_Service_Users'
);
$this->_actualUser = $service->getCurrentUser();
// Usuario Actual
if (Zend_Auth::getInstance()->hasIdentity()) {
$this->view->user = $this->_actualUser;
}
$acl = $service->getAcl();
$this->view->navigation()
->setAcl($acl)
->setRole($this->_actualUser->getRoleId());
.....
}
}
Posteriormente heredando de una clase u otra todo funciona. Si estas interesado en este sistema, me lo dices y te mando por un privado una URL de un tipo Alemán buenísimo donde puedes bajarte toda su web y tomar ese código como punto de partida de cualquier proyecto con las necesidades básicas resueltas. (parece ser que a los administradores de este foro les sienta mal que se pongan links ...)
Saludos