ユーザーロールを利用して開発時間を短縮する symfony アプリケーションがあります。私の経験不足では、ユーザーに適切なロールが関連付けられていない場合、現在認証されていてもログインページにリダイレクトされるという問題に遭遇しています。
この動作を無効にしてログイン状態を維持し、情報ページに送信して、役割/権限を増やすために必要なアクションを伝えるにはどうすればよいでしょうか?
私は現在、以下をキャッチするために次のように設定されたプロバイダーを持っていますAccessDeniedException
:
website.access_denied:
class: %website.access_denied.class%
arguments: [ @doctrine.orm.entity_manager, @website.website ]
tags:
- { name: kernel.event_listener, event: kernel.exception, method: handle }
次に、私のsecurity.yml
では、次のようにaccess_denied_handler
設定しています。
firewalls:
website:
access_denied_handler: website.access_denied
そして最後に、私のクラス:
class AccessDenied implements AccessDeniedHandlerInterface
{
public function handle(Request $request, AccessDeniedException $accessDeniedException)
{
// do something here
}
}