У меня возникла проблема с настройкой правильных правил в моем приложении. Следующий мой код ... Я создаю роли, ресурсы и ограничения .. но ... Я ожидаю, что «consul» разрешено перейти в/mymodule, но ему отказано в/mymodule/{add, edit, delete} .. . и поэтому «Operat» происходит всюду, за исключением удаления контроллера MyModule ...Zend Framework 2 ACL - Разрешения на модули Индекс
//creating roles
$guest = new GenericRole('guest');
$consul = new GenericRole('consul');
$operat = new GenericRole('operat');
$admin = new GenericRole('admin');
//adding roles
$acl -> addRole($guest);
$acl -> addRole($consul,'guest');
$acl -> addRole($operat,'consul');
$acl -> addRole($admin,'operat');
//adding resources
$acl -> addResource(new GenericResource('home'));
$acl -> addResource(new GenericResource('application'));
$acl -> addResource(new GenericResource('auth'));
$acl -> addResource(new GenericResource('mymodule'));
//adding restrictions
$acl -> allow('guest', 'home');
$acl -> allow('guest', 'application');
$acl -> allow('guest', 'auth');
$acl -> deny('guest', 'mymodule');
$acl -> allow('consul','mymodule');
$acl -> allow('operat','mymodule','index');
$acl -> deny('consul','mymodule','add');
$acl -> deny('consul','mymodule','edit');
$acl -> deny('consul','mymodule','delete');
$acl -> allow('operat','mymodule');
$acl -> deny('operat','mymodule','delete');
$acl -> allow('admin');
вместо желаемого поведения, ZF2 не позволяет просматривать/MyModule к «консулу», и если я пытаюсь отлаживать у меня есть следующее (мой код и в комментарии результат):
//some tests
echo $acl->isAllowed('guest', 'mymodule') ? 'allowed' : 'denied'; // denied
echo $acl->isAllowed('guest', 'mymodule','index') ? 'allowed' : 'denied'; // denied
echo $acl->isAllowed('guest', 'mymodule','add') ? 'allowed' : 'denied'; // denied
echo $acl->isAllowed('consul','mymodule') ? 'allowed' : 'denied'; // denied
echo $acl->isAllowed('consul','mymodule','index') ? 'allowed' : 'denied'; // allowed
echo $acl->isAllowed('consul','mymodule','default') ? 'allowed' : 'denied'; // allowed
echo $acl->isAllowed('consul','mymodule','add') ? 'allowed' : 'denied'; // denied
echo $acl->isAllowed('consul','mymodule','edit') ? 'allowed' : 'denied'; // denied
echo $acl->isAllowed('operat','mymodule') ? 'allowed' : 'denied'; // denied
echo $acl->isAllowed('operat','mymodule','index') ? 'allowed' : 'denied'; // allowed
echo $acl->isAllowed('operat','mymodule','default') ? 'allowed' : 'denied'; // allowed
echo $acl->isAllowed('operat','mymodule','add') ? 'allowed' : 'denied'; // allowed
echo $acl->isAllowed('operat','mymodule','edit') ? 'allowed' : 'denied'; // allowed
echo $acl->isAllowed('operat','mymodule','delete') ? 'allowed' : 'denied'; // denied
echo $acl->isAllowed('admin','mymodule') ? 'allowed' : 'denied'; // allowed
echo $acl->isAllowed('admin','mymodule','index') ? 'allowed' : 'denied'; // allowed
echo $acl->isAllowed('admin','mymodule','default') ? 'allowed' : 'denied'; // allowed
echo $acl->isAllowed('admin','mymodule','add') ? 'allowed' : 'denied'; // allowed
echo $acl->isAllowed('admin','mymodule','edit') ? 'allowed' : 'denied'; // allowed
echo $acl->isAllowed('admin','mymodule','delete') ? 'allowed' : 'denied'; // allowed
кто может помочь мне понять это странное поведение? где моя вина?
спасибо заранее
Так что я сделал ... но когда консул идет/mymodule не допускается ... почему? –
или, может быть, я могу изменить свои ссылки, но функция echo $ this-> url ('mymodule', array ('action' => 'index')); печатает «/ mymodule», и поэтому «консул» отправляется в/mymodule и отрицается –