Zend Framework: Как отредактировать контроллер ошибок, чтобы обрабатывать ошибки входа в систему / ошибки авторизованного доступа? - PullRequest
0 голосов
/ 02 августа 2010

Я создаю плагин контроллера acl, который проверяет, авторизован ли пользователь к ресурсу, и перенаправляет его на контроллер ошибок для его обработки как мне это сделать?

1 Ответ

1 голос
/ 02 августа 2010

Посмотрите на этот вопрос на 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);

Если он не вошел в систему или его недостаточноправа запрос будет изменен для пересылки на страницу входа или в контроллер ошибок.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...