我有一个用户可以链接到几家公司的应用程序。与公司的多对多关系是一个称为 Associate 的杰出实体。
我想为这个 Associate 实体提供与我的 FOSUserBundle User 实体完全相同的角色功能。重要提示:如果用户拥有一家公司的 role_manager,则不应授予该用户访问他所属的另一家公司的特定功能的权限。
有没有一种干净的方法可以做到这一点?例如,我想检查 $this->getUser->getAssociate->hasRole('ROLE_MANAGER') 是否为真。
如果我给我的实体 Associate 提供一个角色数组怎么办?我读过它不够安全?为什么?如果无论如何我的用户必须通过 FOS 安全登录检查,有人能做些什么来破坏这种安全性?
我发现一篇文章建议使用选民。但是我不想过滤路由,我真的想根据用户和公司之间的链接检查条件,所以如果投票者是解决方案,我将如何使用它?
编辑:如果存在不涉及角色或具有不同逻辑的更好解决方案,我有兴趣了解它!