6

有効なサブスクリプションを実行していないユーザーを特定のページ (私の場合は支払いページ) にリダイレクトする方法を見つけようとしています。

すべてのアクションに isGranted チェックを入れることでそれができることはわかっていますが、私が持っているアクションの量を考えると、これは時間の大きな無駄に思えるので、この解決策は好きではありません。

firewall.access_denied_url パラメーターを調べましたが、たとえば、ROLE_ADMIN を持たないユーザーに対して管理ページへのアクセスが拒否され、支払いにリダイレクトされるため、AccessDenied を支払いページにリンクしたくありません。ページに意味はありません。

ユーザーが有効かどうかを確認し、その場合にアクセスを許可する有権者を既に持っていますが、ユーザーが特定のパターンに到達しようとしたときにこの有権者を使用し、アクセスが拒否されたときにリダイレクトするにはどうすればよいでしょうか?

前もって感謝します!

4

2 に答える 2

1

JMSAopBundleを使用できます。

ドキュメントから:

このバンドルは Symfony2 に AOP 機能を追加します。

AOP についてまだ聞いたことがない場合は、基本的に横断的な問題 (セキュリティ チェックなど) を専用のクラスに分離することができ、必要なすべての場所でそのコードを繰り返す必要がなくなります。

つまり、これにより、サービス層またはコントローラーで特定のメソッドを呼び出す前後にカスタム コードを実行できます。元のメソッドの呼び出しをスキップするか、例外をスローすることも選択できます。

于 2012-04-04T06:40:58.280 に答える