Php 如何允许用户角色\u用户访问SonatAdminBundle服务?
我为我的英语提前道歉 你好 我真的找不到我问题的答案。如果有任何帮助,我将不胜感激 所以。Symfony 2.8上有一个项目。有一个模块SonataAdminBundle+FOSUserBundle。我创建了几个服务:Php 如何允许用户角色\u用户访问SonatAdminBundle服务?,php,symfony,fosuserbundle,sonata-admin,roles,Php,Symfony,Fosuserbundle,Sonata Admin,Roles,我为我的英语提前道歉 你好 我真的找不到我问题的答案。如果有任何帮助,我将不胜感激 所以。Symfony 2.8上有一个项目。有一个模块SonataAdminBundle+FOSUserBundle。我创建了几个服务:User、Flat和Admin 登录管理区域时,将提供角色\用户等。当您以角色\u SUPER\u admin进入管理区域时,所有服务都可见,当您以角色\u USER登录时,没有一个服务可见。对代码的不同操作没有产生任何结果 也许有人知道如何正确地授予具有角色的用户访问管理服务的权
User
、Flat
和Admin
登录管理区域时,将提供角色\用户等。当您以角色\u SUPER\u admin进入管理区域时,所有服务都可见,当您以角色\u 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:
admin.admin:
class: Flatbel\FlatBundle\Admin\AdminAdmin
arguments: [~, Flatbel\FlatBundle\Entity\Flat,~]
tags:
- { name: sonata.admin, manager_type: orm, label: Admin}
services.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:
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');
}
}
您需要在sonata_admin.yaml中配置角色_admin:
sonata_admin:
...
security:
role_admin: ROLE_USER
您能告诉我您是否设置了ACL或自定义的SonataUserBundle吗?@staskrak SonataUserBundle已配置且工作正常。用户数据库包含标准字段,包括角色字段。注册、授权等工作正常。这没有问题。我有一个拒绝访问控制器中未经授权用户的页面:
$this->denyaccessunlessgrated('ROLE_USER',null,'无法访问此页面!')代码>此解决方案有效,symphony要求用户获得授权。但是我在security.ymlsecurity:acl:connection:default
中没有这样的行。您是否尝试配置sonata的仪表板?