gpt4 book ai didi

php - 授予 bjyauthorize 从 CLI 运行 ZF2 的 mvc 应用程序的权限

转载 作者:可可西里 更新时间:2023-10-31 23:05:52 25 4
gpt4 key购买 nike

我在 ZF2 上有一个完全运行的 mvc 应用程序。我想从命令行运行一些操作。我已经正确设置了我的控制台路由和其他环境。当我从 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 用户运行操作?

编辑:

以下是 bjyauthorize.global.php 中提到的 Controller 的守卫数组。

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

我也用过 ZfcUser。如何从 CLI 传递用户登录凭据。或者如果有任何方法可以从 cli 使用用户 session 。

谢谢

最佳答案

我找到了解决方案。我无法为 cli 用户授予权限,但它是通过在从 CLI 运行时禁用 bjyAuthorize 来完成的。

我找到了解决方案:How to use BjyAuthorize in ZF2 CLI application?

如果其他人发现了这个问题,这里是对他们的解释:

要在从 cli 运行时禁用 bjyAuthorize,我们可以在 application.config.php 中执行以下操作。

最初不要在您的 application.config.php 数组中添加“BjyAuthorize”和“BjyProfiler”。检查控制台,如果没有控制台访问权限,则将它们添加到 $config 数组中。

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

还有必要在 Application/Module.php 的 onBootstrap 方法中检查控制台,如下所示

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

最后但同样重要的是,不要忘记导入 Console 类:

use Zend\Console\Console;

关于php - 授予 bjyauthorize 从 CLI 运行 ZF2 的 mvc 应用程序的权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20990416/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com