我到处搜索,但似乎不可能做到。
我能够捕获来自SwitchEvent
的{{1}}并获取模仿者和目标用户对象(一个被假冒为)但我真的希望,根据目标用户角色将请求重定向到某些其他网址。
示例:
我有两个限制区域:“/ basic”和“/ elevated”,其中第一个需要SwitchEventListener
,另一个ROLE_BASIC
角色。现在,如果我当前以ROLE_ELEVATED
用户身份登录,并希望使用网址切换到某个ROLE_ELEVATED
用户:
ROLE_BASIC
会导致 AccessDeniedException ,我不得不首先导航到:
/basic/?_switch_user=some_basic_user
只有在此之后我才能导航到/ basic,因为令牌已写入会话。
现在,问题,正如主题所示:在进行用户切换后,有没有办法使用/?_switch_user=some_basic_user.
(或任何其他用户)重定向用户?
答案 0 :(得分:2)
好的,我终于可以访问我的开发计算机,并查找了解决此问题的方法。
而且,我得说,它并不像我想要的那样干净,但交货日期至关重要,这是当时实现它的唯一途径。
所以,我基本上做的是发送AJAX(尽管我将async
设置为false
)请求到URL /?_switch_user=some_basic_user
,等待答案,如果成功,我会向前导航到/basic/?_switch_user=some_basic_user
网址。我知道,这很快,很脏,几乎不可靠......
希望这会有所帮助......
答案 1 :(得分:0)
您可以直接生成正确的链接:
<a href="/basic/?_switch_user=some_basic_user">...</a>
当然,网址也可以由twig的path
帮助程序生成:
<a href="{{ path('basic_homepage', { _switch_user: 'some_basic_user' }) }}">...</a>