Мне нужно выполнить проверку ACL для пользователя, прежде чем разрешить доступ к панели администратора веб-сайта Laravel 5. Как лучше всего это сделать для всей группы контроллеров в пространстве имен App\Http\Controllers\Admin\*
? В конечном счете, я ищу для этого метод «установил и забыл», и промежуточное ПО выглядит пока лучшим вариантом.
Первоначальная идея состояла в том, чтобы назначить промежуточное ПО для маршрута администратора, но это не препятствует доступу к контроллерам любым другим маршрутам, не являющимся администраторами. Это означает, что маршрут может по-прежнему ориентироваться на контроллеры администратора и обходить проверку ACL.
Следующей идеей было вставить присваивание в конструктор контроллеров, но для этого потребовалось бы, чтобы каждый дополнительный контроллер явно включал промежуточное ПО. Для этого разработчик должен знать, что промежуточное ПО должно быть включено, что позволяет ему полностью его пропустить. Это также относится к использованию одного базового контроллера в качестве родительского для всех контроллеров администратора, поскольку разработчику необходимо знать, что базовый контроллер должен быть расширен. На данный момент это выглядит как лучшее решение.
Это возвращает нас к вопросу: может ли промежуточное ПО быть назначено пространству имен с подстановочными знаками контроллера, например App\Http\Controllers\Admin\*
? Или есть лучший способ, чтобы проверку ACL никогда не приходилось явно назначать каждому контроллеру администратора?