如何修复"访问被拒绝到动作列表和角色列表"消息?

时间:2018-02-09 11:29:47

标签: php symfony sonata-admin

我正在使用Sonata Admin Bundle管理一些实体。我的一个实体叫做Equivalent。它有两个简单的领域。

我运行sonata:admin:generate为这个新实体创建一个管理类。 I / O如下:

The fully qualified model class: AppBundle\Entity\Equivalent
The bundle name [AppBundle]:
The admin class basename [EquivalentAdmin]:
Do you want to generate a controller [no]? yes
The controller class basename [EquivalentAdminController]:
Do you want to update the services YAML configuration file [yes]?
The services YAML configuration file [admin.yml]:
The admin service ID [app.admin.equivalent]:

The admin class "AppBundle\Admin\EquivalentAdmin" has been generated under the file "/usr/src/app/src/AppBundle/Admin/EquivalentAdmin.php".

The controller class "AppBundle\Controller\EquivalentAdminController" has been generated under the file "/usr/src/app/src/AppBundle/Controller/EquivalentAdminController.php".

The service "app.admin.equivalent" has been appended to the file "/usr/src/app/src/AppBundle/Resources/config/admin.yml".

...问题在于,当我去/admin/app/equivalent/list时 - 即使是超级用户 - 我也会收到此错误:

Access Denied to the action list and role LIST

所以我的问题是:如何避免此错误并允许我的超级用户访问商家信息?

(如果您还包括允许其他行动的方法,请将其视为业力奖励。)

1 个答案:

答案 0 :(得分:0)

糟糕!看看数据库确认我的超级用户实际上不是超级用户。用户"角色"实际上,这个领域非常稀疏。

查看security.yml(以及数据库中的users表),然后使用fos:user:promote"修复"来修复缺少角色的问题。暂时的问题。

==

编辑#1:

但是几天后尝试相同的步骤并没有解决问题,所以问题仍然存在。

==

编辑#2:

经过同事的帮助和浏览https://symfony.com/doc/master/bundles/SonataAdminBundle/reference/security.html之后,很明显应用程序正在使用一些"魔法"命名约定以允许ROLE_文件中的新security.yml定义。

因为我在app.admin.equivalent文件中将admin.yml定义为服务,所以我在ROLE_APP_ADMIN_EQUIVALENT_LIST文件的相关位置添加了security.yml,并且列表视图已启动为我的用户工作得很好。