processor = $processor; } /** * Проверка доступных действий для пользователя * !! Реализация класса проверки действий не должна быть внутри Контроллера!!! * Информация о доступе может быть в файле, базе данных и т.д. */ function checkAction($action) { // Импликация !! http://ru.wikipedia.org/wiki/Импликация $name = $this->name; return (!isset($this->access[$name][$action]) || in_array(Filter_UserAccess::$access, $this->access[$name][$action])); } function execute(HttpRequest $request) { $action = $request->getAction(); if(! $this->checkAction($action)) { $request->set('action', 'index'); $request->setAction('index'); } return $this->processor->execute($request); } }