diff --git a/src/Controller/Front.php b/src/Controller/Front.php index 6574d04..ed5aee2 100644 --- a/src/Controller/Front.php +++ b/src/Controller/Front.php @@ -47,11 +47,8 @@ class Controller_Front extends Controller_Action return $module->access->execute($request); } - if ($controller) { - $moduleFile = Shortcut::getUrl($this->shortcut, $name, $controller); // ModuleLoader (2) - } else { - $moduleFile = Shortcut::getUrl($this->shortcut, $name, $name); // ModuleLoader (2) - } + $suffix = ($controller) ? $controller : $name; + $moduleFile = Shortcut::getUrl($this->shortcut, $name, $suffix); // ModuleLoader (2) $module = $this->loadClass($moduleFile, null, 'Module_'); if ($module) { @@ -75,6 +72,7 @@ class Controller_Front extends Controller_Action $logger->before = $this->loadSettings(Shortcut::getUrl('logger', $name)); // Управление доступом $module->access = $this->loadClass(__DIR__ . '/../Filter/ActionAccess.php', $logger, 'Filter_'); + $module->access->name = $suffix; $module->access->access = $this->loadSettings(Shortcut::getUrl('access', $name)); $module->setUp(); diff --git a/src/Filter/ActionAccess.php b/src/Filter/ActionAccess.php index 9b0b9f0..8f21d21 100644 --- a/src/Filter/ActionAccess.php +++ b/src/Filter/ActionAccess.php @@ -7,6 +7,7 @@ class Filter_ActionAccess { public $access = array(); public $processor; + public $name; function __construct($processor/*: Filter_Filter*/) { $this->processor = $processor; @@ -19,7 +20,8 @@ class Filter_ActionAccess */ function checkAction($action) { // Импликация !! http://ru.wikipedia.org/wiki/Импликация - return (!isset($this->access[$action]) || in_array(Filter_UserAccess::$access, $this->access[$action])); + $name = $this->name; + return (!isset($this->access[$name][$action]) || in_array(Filter_UserAccess::$access, $this->access[$name][$action])); } function execute(HttpRequest $request) {