9

FOSUserBundle を使用して、ユーザーの役割を変更しようとしています。問題は、ユーザーが同時にログインしている場合、新しいロールを表示するには再ログインする必要があることです。

解決策はありますか?

4

3 に答える 3

12

Security Configuration Referenceによると、オプションがありalways_authenticate_before_grantingます。それに関する情報はあまりありませんが、データベースからロードするカスタムロールで試してみましたが、うまくいきました。新しいリクエストを行うたびに、セキュリティ コンポーネントがロールをリロードするようです。

したがって、ロールがユーザー セッションで更新および再ロードされることを確認したい場合は、このオプションをtrueに設定するだけsecurity.ymlです。

# app/config/security.yml
security:
    always_authenticate_before_granting:  false
于 2012-11-14T20:16:26.030 に答える
0

コントローラーでこれを試してください:

$this->get('fos_user.user_manager')->refreshUser($user);

FOS/UserBundle/Model/UserManager.php を参照してください。

于 2012-02-10T22:03:43.050 に答える
-1

1: ファイアウォール構成で switch_role: true を有効にする必要があります。2: 次に、ROLE_ADMIN の役割を別の役割に切り替えることができるようにする必要があります。3: ?_switch_role=userNameCanonical へのリンクを作成するだけです

そのほとんどは symfony セキュリティ fos によって行われ、役割の切り替えとは何の関係もありません。

于 2012-02-10T16:03:16.600 に答える