У меня есть полностью запущенное приложение mvc на ZF2. Я хочу запустить некоторые действия из командной строки. Я правильно настроил свои консольные маршруты и другие среды. Когда я запускаю свое приложение из CLI, я получил исключение Permission denied, подобное этому:
'You are not authorized to access GeneratePdf\Controller\GeneratePdf\GeneratePdf:generate-all' in /var/www/zf2-reporting/module/BjyAuthorize/src/BjyAuthorize/Guard/Controller.php:172
У меня уже есть пользователь в моей базе данных. Как я могу использовать эти учетные данные для авторизации пользователя CLI для запуска действий?
Изменить :
Ниже приведен массив охранников в bjyauthorize.global.php для упомянутого контроллера.
'guards' => array( 'BjyAuthorize\Guard\Controller' => array(array('controller' => 'GeneratePdf\Controller\GeneratePdf', 'roles' => array('admin', 'letters_admin'))
Я также использовал ZfcUser. Как я могу передать учетные данные пользователя из CLI. Или, если есть какой-либо способ использовать сеанс пользователя из cli.
благодаря
Я нашел решение. Я не могу дать разрешение для пользователя cli, но это произошло, отключив bjyAuthorize во время работы от CLI.
Я нашел решение по этому вопросу: как использовать BjyAuthorize в приложении CLI ZF2?
Вот объяснение для других, если они нашли эту проблему:
Чтобы отключить bjyAuthorize во время работы из cli, мы можем сделать так, как показано ниже в application.config.php.
Не добавляйте сначала «BjyAuthorize» и «BjyProfiler» в ваш массив application.config.php. Проверьте консоль, если не консольный доступ, а затем добавьте их в $ config array.
if (!Console::isConsole()) { array_unshift($config['modules'], 'BjyAuthorize'); array_unshift($config['modules'], 'BjyProfiler'); } return $config;
Также необходимо проверить консоль в методе onBootstrap приложения / Module.php, как показано ниже.
if (!Console::isConsole()) { $authorize = $sm->get('BjyAuthorize\Service\Authorize'); $acl = $authorize->getAcl(); $role = $authorize->getIdentity(); }
И последнее, но не менее важное: не забудьте импортировать класс консоли:
use Zend\Console\Console;