более подходящим вариантом является предоставление контроллера для каждого раздела (ie Home, News, Search, Admin): каждый контроллер отвечает за раздел веб-сайта.
Различные пользовательские профили затем используются в контроллер, если вам нужно различать, что пользователи могут видеть и делать.
Меньше дублирования кода: имеется один экран (Поиск) с одним Контроллером (SearchController), который обслуживает разные профили пользователей. Добавление профиля пользователя является простым и не требует изменения кода поиска (возможно, только добавление некоторой дополнительной безопасности в бэкэнд, если новый профиль может видеть меньше или больше, чем другие).
Вы можете использовать наследование чтобы определить профиль пользователя: гостевой пользователь является базовым профилем, но другие (Admin) расширяют его, чтобы обеспечить другое поведение.
Надеюсь, это поможет.