/** * Check permissions before dispatch process * * @throws Zend_Auth_Adapter_Exception if answering the authentication query is impossible * @param Zend_Controller_Request_Abstract $request * @return void */ public function preDispatch(Zend_Controller_Request_Abstract $request) { $resource = $request->getControllerName(); $action = $request->getActionName(); if ($this->_auth->hasIdentity()) { $identity = $this->_auth->getStorage()->read(); $role = $identity->role; } else { $role = $this->_defaultRole; } if ($this->_acl->has($resource) && !$this->_acl->isAllowed($role, $resource, $action)) { $request->setControllerName('error')->setActionName('deny'); } }