roles
メニューのレンダリング中にメニュー項目の権限をチェックするための新しいオプションをルーティング設定に追加しました。
対応するコントローラーを実行する前に、権限チェックのオプションを使用できれば素晴らしいと思います。
例:
some_route:
path: /path/
defaults: { _controller: MyBundle:Controller:action }
option:
roles: [ROLE_MANAGER, ROLE_ADMIN]
コントローラー自体を実行する前に、ユーザーが役割に基づいてコントローラーにアクセスできるかどうかを確認する必要があります。
それはどのように可能ですか?何か案は?
更新
なぜroles
オプションが必要なのですか?
プロジェクトには4つの異なる役割と多くのルートがあります。一部のルートは保護されており、特定の役割を持つユーザーにのみ表示されます。
今のところ、すべての承認チェックはコントローラー内でdenyAccessUnlessGranted()
メソッドによって実行されます。また、メニューの構築にはKnpMenuBundle
を
使用しています。また、メニューのレンダリング中に、現在ログインしているユーザーの各項目のアクセシビリティを確認する必要があります。ユーザーがアイテムへのアクセス権を持っていない場合、そのアイテムは除外され、ユーザーには表示されません。
ユーザーがアイテムにアクセスできるかどうかを確認するために、前述のオプションを追加しました。ここでは、ルートにアクセスできるロールを定義します。そして、このオプションは、チェックインとまったく同じロールを定義しますroles
denyAccessUnlessGranted()
. そして、私はすでにこれらの役割設定を持っているので、コントローラーの承認チェックに使用して冗長コードを削除しないのはなぜだと思います。