その目的でsfguardアーキテクチャを使用することは意味がありますか?
もちろんですが、少し修正する必要があります。デフォルトでは、Symfonyはセッションにクレデンシャルを保存します。つまり、セッションが期限切れになるまでクレデンシャルは無効になりません。これは、誰かをグループに追加したり、許可を与えたりすることですぐに効果が見られると予想される場合に大きな問題になります。
これを修正するには、次のいずれかを実行する必要があります。
- サインインではなく、すべてのリクエストでクレデンシャルをロードします。
- ユーザーの資格情報が変更された場合は、APCのグローバルキャッシュ設定(APCを使用していますよね?)またはユーザーのプロファイルの設定のいずれかを使用して、資格情報を無効にします。
いずれにせよ、SymfonyとsfGuardDoctrineのユーザーシステムに精通している必要があります。sfGuardSecurityUser::signIn
クレデンシャルがデフォルトでどのように機能するかを理解するために、を見てください。
特定のユーザーが特定のグループに対して特定の権限を持っているかどうかを確認するにはどうすればよいですか?
トリスタンはこれをかなり徹底的にカバーしました。また、 sfDoctrineGuardreadmeも確認する必要があります。サインインしたユーザーに対してクレデンシャルの変更がライブで行われるソリューションでは、ある種の無効化を実行するために、Tristanによってリストされたすべてではないにしてもほとんどのメソッドをオーバーライドする必要があることに注意してください。
また、この関連する質問をチェックしてください、それは役に立つかもしれません。