FOSUserBundleを使用してユーザーの役割を変更しようとしています。問題は、ユーザーが同時にログに記録されている場合、新しい役割を確認するために再ログオンする必要があることです。リロッグする必要がない遠隔ユーザーの役割を変更する
すべてのソリューションはありますか?
FOSUserBundleを使用してユーザーの役割を変更しようとしています。問題は、ユーザーが同時にログに記録されている場合、新しい役割を確認するために再ログオンする必要があることです。リロッグする必要がない遠隔ユーザーの役割を変更する
すべてのソリューションはありますか?
1:ファイアウォール設定でswitch_role:trueを有効にする必要があります。 2:次に、ROLE_ADMINの役割を別の役割に切り替えることを許可する必要があります。 3:ちょうど_switch_role = userNameCanonicalへのリンクを作成します
symfonyのセキュリティによってほとんど行われているfosはロール切り替えとは関係ありません。
@Pivasykへの私のコメントを参照してください。ありがとう – Joffrey
あなたのコントローラでこれを試してみてください:
$this->get('fos_user.user_manager')->refreshUser($user);
参照FOS/UserBundle /モデル/ UserManager.php
あなたの答えをありがとう、それは本当に私が探しているものではありません。 私はすでに現在のセッションでユーザーの役割を更新できます。 私がやっていることは遠いユーザーの役割をリフレッシュすることです。 私は管理者で、接続しているユーザーの役割を変更したいとします。彼は新しい役割を見るためにリロッグする必要があります...どうすればそれを避け、即座に変えることができますか? ありがとうございます。 – Joffrey
Security Configuration Referenceによると、always_authenticate_before_granting
オプションがあります。それに関する多くの情報はありませんが、私はデータベースからロードするカスタムロールで試してみましたが、それはそのトリックです。新しいリクエストを行うたびに、セキュリティコンポーネントがロールを再ロードするように見えます。
ですから、あなたの役割はでちょうどtrue
にこのオプションを設定し、リフレッシュして、ユーザーセッションに再ロードされていることを確認したい場合は、あなたのsecurity.yml
:あなたの答えを得た方法
# app/config/security.yml
security:
always_authenticate_before_granting: false
これは、最新のsymfonyのバージョンでページの処理を倍増させるようです... :( –
データベースIOを増加させますか? – tom10271
?私は同じ問題に直面しています... –