Laravel 5 Web サイトの管理パネルへのアクセスを許可する前に、ユーザーの ACL チェックを行う必要があります。名前空間内のコントローラ グループ全体に対してこれを行う最善の方法は何App\Http\Controllers\Admin\*
ですか? 最終的に、私はこれを行うための「設定して忘れる」方法を探しています。これまでのところ、ミドルウェアが最良の選択肢のようです。
最初のアイデアは、ミドルウェアを管理ルートに割り当てることでしたが、これは他の非管理ルートがコントローラーにアクセスすることを妨げません。これは、ルートが引き続き管理コントローラをターゲットにして、ACL チェックをバイパスできることを意味します。
次のアイデアは、コントローラーのコンストラクターに割り当てを挿入することでしたが、これには追加のコントローラーごとにミドルウェアを明示的に含める必要があります。これにより、開発者はミドルウェアを含める必要があることを知る必要があり、ミドルウェアを完全に見逃す可能性があります。これは、1 つのベース コントローラーをすべての管理コントローラーの親として使用する場合にも当てはまります。これは、開発者がベース コントローラーを拡張する必要があることを知る必要があるためです。今のところ、これが最善の解決策のようです。
これにより、質問に戻ります。ミドルウェアをコントローラーのワイルドカード名前空間に割り当てることはできますApp\Http\Controllers\Admin\*
か? または、ACL チェックをすべての管理コントローラーに明示的に割り当てる必要がないようにするためのより良い方法はありますか?