Посмотрите на этот вопрос на SO: Помощь с Zend ACL .
Еще один хороший учебник ACL / Auth можно найти в devzone: Пример сценария Zend_Acl / Zend_Auth (Перечень кодов неполный, но посмотрите на комментарий "ЧАСТИ ПРОПУСКА")
Важная часть находится в плагине preDispatch:
$controller = $request->controller;
$action = $request->action;
$module = $request->module;
$resource = $controller;
if (!$this->_acl->isAllowed($role, $resource, $action)) {
if (!$this->_auth->hasIdentity()) {
$module = 'default';
$controller = 'login';
$action = 'index';
} else {
$module = 'default';
$controller = 'error';
$action = 'privileges';
}
}
$request->setModuleName($module);
$request->setControllerName($controller);
$request->setActionName($action);
Если он не вошел в систему или его недостаточноправа запрос будет изменен для пересылки на страницу входа или в контроллер ошибок.