【问题标题】:Same Role with different actions for different users相同的角色对不同的用户有不同的操作
【发布时间】:2019-04-10 09:13:13
【问题描述】:

我正在使用 symfony3,并且我在我的应用程序中有许多角色,我希望作为管理员将许多操作(管理书籍、管理项目..)归因于不同的用户,但是他们已经拥有相同的角色,例如两个学生可以有不同的管理(操作),但他们已经拥有相同的角色“ROLE_STUDENT”。 知道我使用 FOSUserBundle 进行用户管理。我在互联网上找到了许多解决方案,例如使用 ACL、组、权限,将这些操作用作角色.. 那么如何将操作归因于具有相同角色的不同用户,最好的解决方案是什么?

【问题讨论】:

    标签: php symfony doctrine-orm fosuserbundle


    【解决方案1】:

    您可以使用角色、角色层次结构和投票者的组合

    /** security.yaml **/
        role_hierarchy:
                ROLE_ADMIN
                ROLE_STUDENT_BOOK:       ROLE_STUDENT
                ROLE_STUDENT_PROJECT:     ROLE_STUDENT       
                ROLE_STUDENT_LIBRARY: [ROLE_STUDENT_BOOK, ROLE_STUDENT_PROJECT]
    

    在这里,您的用户可以拥有角色 ROLE_STUDENT_BOOK 并管理书籍,其中另一个学生管理项目,第三个管理两者......但最终他们仍然是学生,拥有 ROLE_STUDENT 的所有权限。当然没有他们有管理员权限

    然后您可以使用 voter 更精确地控制谁可以对您的对象执行什么操作

    https://symfony.com/doc/current/security/voters.html

    【讨论】:

      猜你喜欢
      • 2022-01-13
      • 1970-01-01
      • 1970-01-01
      • 2011-03-10
      • 2012-10-09
      • 2020-04-22
      • 2016-01-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多