我目前正在尝试找出将教义持久角色实体实现为与 FOSUserBundle 兼容的 M2M 关系的最佳方法。以前,我仅使用默认实现的字符串,并使用学说数组映射来持久化它。
现在我需要将角色作为单独的实体,因为我们想要构建一个管理后端,其他人可以在其中授予用户角色。
基本上,这是一个令人头痛的问题。 FOS 接口是为字符串表示构建的,而不是为角色实体构建的。改变实现,你会破坏很多东西,例如用于提升用户的 FOS 命令。而且很难准确地弄清楚需要哪些接口才能让 symfony2 安全系统继续正常工作。
我可以重写角色管理代码并尽可能多地使用角色实体,例如:
$user->addRole(new Role('ROLE_FOO'));
但这会破坏命令和可能的现有代码吗?
或者继续使用:
$user->addRole('ROLE_FOO');
并将角色/实体管理器代码添加到addRole()
(糟糕的设计)。
我注意到这是一个灰色区域(FOS 的角色实体),并且在 symfony2 板上和此处提到过,但没有像样的解决方案。
任何人有任何经验或能想到一个不错的解决方案吗?
我决定混合使用数组/ArrayCollection 实现。我尝试尽可能遵循现有的接口,以免破坏安全系统。我已将我的解决方案记录在http://blog.jmoz.co.uk/symfony2-fosuserbundle-role-entities
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)