Php FOSUserBundle:根据角色设置不同的角色和身份验证URL

Php FOSUserBundle:根据角色设置不同的角色和身份验证URL,php,symfony,Php,Symfony,我应该如何修改security.yml以实现此场景 情景: mysitessss.com->学生,讲师和经理可以访问 mysitessss.com/admin->讲师和经理可以访问 mysitessss.com/admin/private->manager可以访问 我应该运行哪个确切的命令来创建相应的用户 学生:php应用程序/控制台fos:用户:创建 教师:php应用程序/控制台fos:用户:创建 经理:php应用程序/控制台fos:用户:创建 我读了这本书,但我被搞糊涂了 routi

我应该如何修改security.yml以实现此场景

情景:

  • mysitessss.com->
    学生
    讲师
    经理
    可以访问
  • mysitessss.com/admin->
    讲师
    经理
    可以访问
  • mysitessss.com/admin/private->
    manager
    可以访问
我应该运行哪个确切的命令来创建相应的用户

  • 学生:php应用程序/控制台fos:用户:创建
  • 教师:php应用程序/控制台fos:用户:创建
  • 经理:php应用程序/控制台fos:用户:创建
我读了这本书,但我被搞糊涂了

routing.yml

home:
    path: /

admin:
    path: /admin

admin_private:
    path: /admin/private
security:
    role_hierarchy:
        ROLE_STUDENT: ?????????
        ROLE_LECTURER: ????????????
        ROLE_MANAGER: ???????

    access_control:
        - { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY }
        - { path: ^/register, role: IS_AUTHENTICATED_ANONYMOUSLY }
        - { path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY }
        - { path: ^/, role: ????????? }
        - { path: ^/admin, role: ????????? }
        - { path: ^/admin/private, role: ?????????? }
app/config/security.yml

home:
    path: /

admin:
    path: /admin

admin_private:
    path: /admin/private
security:
    role_hierarchy:
        ROLE_STUDENT: ?????????
        ROLE_LECTURER: ????????????
        ROLE_MANAGER: ???????

    access_control:
        - { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY }
        - { path: ^/register, role: IS_AUTHENTICATED_ANONYMOUSLY }
        - { path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY }
        - { path: ^/, role: ????????? }
        - { path: ^/admin, role: ????????? }
        - { path: ^/admin/private, role: ?????????? }

我认为您的
security.yml
将如下所示:

security:
    role_hierarchy:
        ROLE_LECTURER: [ROLE_STUDENT]
        ROLE_MANAGER: [ROLE_LECTURER]

    access_control:
        - { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY }
        - { path: ^/register, role: IS_AUTHENTICATED_ANONYMOUSLY }
        - { path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY }
        - { path: ^/, role: ROLE_STUDENT }
        - { path: ^/admin, role: ROLE_LECTURER }
        - { path: ^/admin/private, role: ROLE_MANAGER }
您可以为每个用户创建和提升角色:

$ php app/console fos:user:create student
$ php app/console fos:user:promote student ROLE_STUDENT
$ php app/console fos:user:create lecturer
$ php app/console fos:user:promote lecturer ROLE_LECTURER
# ... etc.

非常感谢。我明天会测试一下,然后告诉你。