【问题标题】:FOSUserBundle: Setting distinctive roles and authentication URLs based on the rolesFOSUserBundle:根据角色设置不同的角色和身份验证 URL
【发布时间】:2014-11-14 10:20:43
【问题描述】:

我应该如何修改 security.yml 以实现这种情况?

场景:

  • mysitessss.com -> studentlecturermanager 可以访问
  • mysitessss.com/admin -> lecturermanager 可以访问
  • mysitessss.com/admin/private -> manager 可以访问

我应该运行哪个确切的命令来创建相应的用户?

  • 学生:php app/console fos:user:create ?????????
  • 教师:php app/console fos:user:create ?????????
  • 经理:php app/console fos:user:create ?????????

我阅读了documentationthis post 但我很困惑!

routing.yml

home:
    path: /

admin:
    path: /admin

admin_private:
    path: /admin/private

app/config/security.yml

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: ?????????? }

【问题讨论】:

    标签: php symfony


    【解决方案1】:

    我认为您的 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.
    

    【讨论】:

    • 谢谢。明天我会测试它并告诉你。
    猜你喜欢
    • 2016-09-23
    • 1970-01-01
    • 2015-05-31
    • 1970-01-01
    • 2019-01-27
    • 2011-02-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多