Give permission for bjyauthorize to run mvc application of ZF2 from CLI

拟墨画扇 提交于 2019-12-22 08:55:06

问题


I have a completely running mvc application on ZF2. I want to run some actions from command line. I have properly set up my console routes and other environments. When I run my app from CLI, I got Permission denied exception like this:

'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

I already have some user in my database. How can I use those credentials to authorize a CLI user to run Actions?

Edit:

Following is the guards array in bjyauthorize.global.php for mentioned controller.

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

I have used ZfcUser as well. How can I pass user login credentials from CLI. Or if there is any way to use user session from cli.

Thanks


回答1:


I found the solution. I am not able to give permission for cli user but it has done by disabling bjyAuthorize while running from CLI.

I found solution on this: How to use BjyAuthorize in ZF2 CLI application?

Here is the explanation for others if they found this issue:

To disable bjyAuthorize while running from cli, we can do like below in application.config.php.

Do not add "BjyAuthorize" and "BjyProfiler" in your application.config.php array initially. Check for console, if not console access then add them in $config array.

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

Also it is necessary to check Console in Application/Module.php's onBootstrap method like below

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

Last but not least, do not forget to import Console class:

use Zend\Console\Console;


来源:https://stackoverflow.com/questions/20990416/give-permission-for-bjyauthorize-to-run-mvc-application-of-zf2-from-cli

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!