Дайте разрешение bjyauthorize на запуск приложения mvc ZF2 из CLI.

У меня есть полностью запущенное приложение mvc на ZF2. Я хочу запустить некоторые действия из командной строки. Я правильно настроил консольные маршруты и другие среды. Когда я запускаю свое приложение из CLI, я получаю исключение "Отказ в разрешении", например:

'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 для запуска Actions?

Редактировать:

Ниже приведен массив охранников в bjyauthorize.global.php для упомянутого контроллера.

'guards' => array(
'BjyAuthorize\Guard\Controller' => array(array('controller' => 'GeneratePdf\Controller\GeneratePdf', 'roles' => array('admin', 'letters_admin'))

Я также использовал ZfcUser. Как я могу передать учетные данные пользователя из CLI. Или, если есть какой-либо способ использовать пользовательскую сессию из cli.

Спасибо

1 ответ

Решение

Я нашел решение. Я не могу дать разрешение для пользователя Cli, но это было сделано путем отключения bjyAuthorize при запуске из CLI.

Я нашел решение по этому вопросу: Как использовать BjyAuthorize в приложении CLI ZF2?

Вот объяснение для других, если они нашли эту проблему:

Чтобы отключить bjyAuthorize при запуске из cli, мы можем сделать, как показано ниже, в application.config.php.

Не добавляйте изначально "BjyAuthorize" и "BjyProfiler" в массив application.config.php. Проверьте консоль, если нет доступа к консоли, добавьте их в массив $config.

if (!Console::isConsole()) {
    array_unshift($config['modules'], 'BjyAuthorize');
    array_unshift($config['modules'], 'BjyProfiler');
}
return $config;

Также необходимо проверить Console в методе onBootstrap Application/Module.php, как показано ниже

if (!Console::isConsole()) {
        $authorize = $sm->get('BjyAuthorize\Service\Authorize');
        $acl = $authorize->getAcl();
        $role = $authorize->getIdentity();
    }

И последнее, но не менее важное: не забудьте импортировать класс консоли:

use Zend\Console\Console;
Другие вопросы по тегам