Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/260.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何允许用户角色\u用户访问SonatAdminBundle服务?_Php_Symfony_Fosuserbundle_Sonata Admin_Roles - Fatal编程技术网

Php 如何允许用户角色\u用户访问SonatAdminBundle服务?

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登录时,没有一个服务可见。对代码的不同操作没有产生任何结果 也许有人知道如何正确地授予具有角色的用户访问管理服务的权

我为我的英语提前道歉

你好

我真的找不到我问题的答案。如果有任何帮助,我将不胜感激

所以。Symfony 2.8上有一个项目。有一个模块SonataAdminBundle+FOSUserBundle。我创建了几个服务:
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.yml
security:acl:connection:default
中没有这样的行。您是否尝试配置sonata的仪表板?