9

説明

Symfony2 では、ユーザーが他のユーザーに切り替えることは簡単です。私の質問は、特定のユーザーが特定の他のユーザーにのみ切り替えることを許可する方法ですか? ユーザープロバイダーとして FOSUserBundle を使用しています。

UserA、UserB、UserC、UserD、UserE の 5 人のユーザーがいますが、そのうちの 3 つだけがリンクされています。

ユーザーAはユーザーBとユーザーCに切り替えることができます

ユーザーBはユーザーAとユーザーCに切り替えることができます

ユーザーCはユーザーAとユーザーBに切り替えることができます

ご協力いただきありがとうございます!

4

3 に答える 3

15

デフォルトの SwitchUserListener をオーバーライドすることで、このタイプのものを実装できる可能性があります。

オーバーライドするパラメーターは次のとおりです。security.authentication.switchuser_listener.class

たとえば、parameters.yml では次のようになります。

parameters:
  security.authentication.switchuser_listener.class: My\Project\Security\Listener\SwitchUserListener

カスタム リスナー クラスでは、カスタム実装の基礎としてSymfony\Component\Security\Http\Firewall\ListenerInterface既存のクラスを実装して使用します。Symfony\Component\Security\Http\Firewall\SwitchUserListener

于 2012-12-08T23:10:09.100 に答える
2

管理者ユーザーを通常のユーザーになりすます場合、いくつかの例があります:)

https://gist.github.com/1589120

http://symfony.com/doc/current/book/security.html#impersonating-a-user

于 2012-11-14T08:47:07.357 に答える