我提前为我的英语道歉。
美好的一天!
我真的找不到问题的答案。我将不胜感激任何帮助。
因此。 Symfony 2.8上有一个项目。有一个模块SonataAdminBundle + FOSUserBundle。我创建了多项服务:User
,Flat
和Admin
。
登录管理区域提供了ROLE_USER等等。当您使用ROLE_SUPER_ADMIN进入管理区域时,所有服务都是可见的,当您使用ROLE_USER登录时,不会显示单个服务。使用代码进行不同的操作不会产生任何结果。
也许有人知道如何正确授予用户ROLE_USER访问管理服务的权限?
security.yml
security:
role_hierarchy:
ROLE_ADMIN: ROLE_USER
ROLE_SUPER_ADMIN: ROLE_ADMIN
access_control:
- { path: ^/login, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/register, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/admin/, role: ROLE_USER }
services.yml
services:
admin.admin:
class: Flatbel\FlatBundle\Admin\AdminAdmin
arguments: [~, Flatbel\FlatBundle\Entity\Flat,~]
tags:
- { name: sonata.admin, manager_type: orm, label: Admin}
AdminAdmin.php
class AdminAdmin extends AbstractAdmin
{
protected function configureFormFields(FormMapper $formMapper)
{
$formMapper
->add('id')
->add('userid');
}
protected function configureListFields(ListMapper $listMapper)
{
$listMapper
->addIdentifier('id')
->addIdentifier('userid');
}
public function toString($object)
{
return $object instanceof User
? $object->getUsername()
: 'Flat'; // shown in the breadcrumb on the create view
}
protected function configureDatagridFilters(DatagridMapper $datagridMapper)
{
$datagridMapper
->add('id')
->add('userid');
}
}
答案 0 :(得分:0)
您需要在sonata_admin.yaml中配置role_admin:
sonata_admin:
...
security:
role_admin: ROLE_USER