簡體   English   中英

在Symfony 2中用戶切換(模擬)后重定向

[英]Redirect after user switching (impersonating) in Symfony 2

我到處搜索,但似乎不可能做到。

我能趕上SwitchEvent從哪里來SwitchEventListener並同時獲得冒領和目標用戶對象(一個被冒充的),但我真的想,基於目標用戶角色請求重定向到其他URL。

例:

我有兩個限制區域:“/ basic”和“/ elevated”,其中第一個需要ROLE_BASIC ,另一個需要ROLE_ELEVATED角色。 現在,如果我當前以ROLE_ELEVATED用戶身份登錄並希望使用URL切換到某個ROLE_BASIC用戶:

/basic/?_switch_user=some_basic_user

這將導致AccessDeniedException ,我被迫首先導航到:

/?_switch_user=some_basic_user. 

只有在那之后我才能導航到/ basic,因為令牌已被寫入會話。

現在, 這個問題 ,正如主題所暗示的那樣:在進行用戶切換后,有沒有辦法使用SwitchEvent (或任何其他)重定向用戶?

好的,我終於可以訪問我的開發計算機,並查找了解決此問題的方法。

而且,我得說,它並不像我想要的那樣干凈,但交付日期至關重要,這是當時實現它的唯一方法。

所以,我基本上做的是發送AJAX(盡管我設置asyncfalse )請求到URL /?_switch_user=some_basic_user ,等待答案,如果成功,我會向前導航到/basic/?_switch_user=some_basic_user URL 。 我知道,這很快,很臟,幾乎不可靠......

希望這可以幫助....

您可以生成正確的鏈接開頭:

<a href="/basic/?_switch_user=some_basic_user">...</a>

當然,URL也可以由twig的path助手生成:

<a href="{{ path('basic_homepage', { _switch_user: 'some_basic_user' }) }}">...</a>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM