Я думаю, что организация вещей таким образом смешивает контроллер и логику аутентификации.В CakePHP ваши действия сгруппированы по контроллерам, а контроллеры обычно соответствуют моделям.Таким образом, у вас будут контроллеры для пользователей, сообщений, продуктов или чего-либо еще.
Тогда для каждого контроллера некоторые действия могут быть доступны только пользователям с определенными привилегиями, например администраторам.Вы должны не создавать отдельный контроллер, чтобы различать уровень привилегий, а скорее группировать свои действия в соответствии с данными, которые они действуют opon.Задача компонента Auth
, возможно, работающего вместе с другими компонентами, такими как Acl
, предоставить или запретить доступ к отдельным действиям в каждом контроллере.
Как вы уже знаете, вы можете затемПрефикс действий, которые требуют прав администратора по admin
с использованием маршрутизации.Это дает отдельную точку входа для действия, но контроллер, управляющий логикой, повторяет то же самое.
Так что ответ на ваш вопрос: вы не должны.Это не то, для чего предназначены контроллеры;контроллеры предназначены для группировки действий над одними и теми же объектами, а не для группирования действий, требующих разных уровней доступа.