Symfony2组层次结构

问题描述 投票:1回答:1

我正在开始使用Symfony2,我想在层次结构类别中对用户进行分组,并为他们提供ROLES。该应用程序需要很多类别,其中一些将为数百个其他类别(也可能是其他人的父母)提供帮助。我想给父母一个ROLES,然后孩子们可以继承ROLES。我不知道最好的方法是什么: - 我可以使用来自FOSUserBundle的群组,但我找不到如何成为父群组,因为FOSUserBundle的群组已经在使用ROLES,所以它将是完美的。 - 或者我应该从零开始创建一个类别实体,但我不知道如何做到这一点(如何链接类别和ROLES),这听起来像“重新发明轮子”给我。

symfony fosuserbundle hierarchy roles
1个回答
1
投票

我认为ACL是一个好方法,但另一个聪明的方法来处理你的问题是使用选民。选民是一个负责决定连接用户是否有权对给定对象执行某些操作的类。你可以用nested tree system做一个简单的层次结构,然后像here一样声明你的选民。阅读这篇文章并了解它,它真的很酷。

在我看来,当您的业务逻辑可以与用户权限进行交互时,这是一种非常酷的方式。它对我有用,这是我的项目:

我有很多不同类型的员工(员工,顾问,分包商,客户),他们每个人都与人力资源,销售管理员,经理和其中一些人员联系到任务......任何方式,如同你可以想象,它吹响了我们的思想。

我们无法使用Gedmo嵌套树,因为同一个类上有几棵树,gedmo不允许这样的事情......所以我们设置了一个UserBoss系统,每次我们想知道某个人是否有权展示或者编辑某人,我只需要在UserBossManager中检查UserBoss关系(每次在某处更改时都保持树最新)并告诉我isBoss($ user1,$ user2)函数是user1是老板用户2(因为层次结构,显然,我们不能只检查直接关系,我老板的老板也是我的老板!)。

所以我希望我的反馈会帮助你(或其他一些读者):)祝你好运!

© www.soinside.com 2019 - 2024. All rights reserved.