【发布时间】:2014-08-06 20:30:24
【问题描述】:
我正在使用 FOSUserBundle 来处理我的用户。对于他们,我有 2 个角色 ROLE_CUSTOMER 和 ROLE_MANUFACTURER。问题是我需要在登录时切换这些角色。有可能吗?我已阅读此文档:
http://symfony.com/doc/current/cookbook/security/impersonating_user.html
有人说我可以在不重新登录的情况下将用户切换到其他用户,但没有关于角色切换的内容。
也许有人有任何代码示例或其他东西?我阅读了太多难以理解的文档。
【问题讨论】:
-
查看 FOSUserBundle 用户类 (link):它有 addRole() 和 removeRole() - 究竟是什么阻止了你?
-
知道用户注册时如何添加角色,但是如何切换呢?
-
您可以在任何地方(例如您的控制器)调用
$user->removeRole('ROLE_FOO'); $user->addRole('ROLE_BAR');,只要您有用户对象(您可以从 fos 用户管理器获得),反之亦然。虽然我不认为角色是为了临时转换。 -
好的,我会尝试删除和添加角色 - 不错的主意。对于切换用户,您可以建议什么解决方案?我需要切换它们,因为每个组都有不同的功能......
-
如果您允许用户在这些角色之间随意切换,您也可以同时给他们两个角色?如果您更详细地告诉我们您的项目/意图,这可能会有所帮助,以便我们可以为您提供具体提示。
标签: symfony fosuserbundle