我正在使用symfony3,并且我在应用程序中有许多角色,我想作为管理员将许多动作(管理书,管理项目..)归因于不同的用户,而他们已经具有相同的角色,例如两个学生可以具有不同的管理(动作),但是他们已经具有相同的角色“ ROLE_STUDENT”。 知道我使用FOSUserBundle进行用户管理。我在Internet上发现了许多解决方案,例如使用ACL,组,权限,并将这些操作用作角色。 那么,我该如何将操作归于具有相同角色的不同用户,以及最佳解决方案是什么?
答案 0 :(得分:0)
您可以使用角色,角色层次结构和投票者的组合
/** 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的所有许可。他们具有管理员权限
然后,您可以使用选民来更精确地控制谁可以对您的对象执行操作