正常に動作している ACL ツリーを構築するモジュールがあります。
config/autoload ディレクトリにはナビゲーション構成ファイルもあり、エントリに関連付けられたリソースとともにアプリケーション構造の詳細が示されています。また、アプリケーション モジュール構成にナビゲーション ファクトリがあります。
これはすべて正常に機能しており、ログインしたユーザーのロールの権限と、ナビゲーション構成のページに対するリソースに基づいてメニューをレンダリングしています。
私が解決できないのは、ユーザーがアクセスできないページ (レンダリングされたナビゲーション メニューに隠されているページ) へのアクセスを防ぐ方法です。これをモジュール内で管理したいと思います。
Module.php ファイルの onBootstrap 関数で、ACL に対して isAllowed を実行し、リダイレクトする必要があると想定しています (この質問のように、 module.php から別のコントローラー/アクションに転送します)。ただし、 isAllowed は、クエリを実行するリソースが必要なようです。これは、ナビゲーション構成から取得する必要があります。
isAllowed 関数で必要なリソースをハードコーディングすれば、これを機能させることができます。事実上、現在のページ リクエストのリソースをナビゲーション構成から取得する必要があるだけです。
これは標準機能であるに違いないと確信していますが、具体的な例は見つかりません。
どんな助けでも感謝します。
クリス