Вы должны использовать маршрутизация префикса , чтобы обычные пользователи увидели / controller / action и администраторы получили свой собственный префикс, например /admin/controller/action.
Просто создайте действие администратора и внутренне «перенаправьте» контроллер для использования обычного действия входа в систему. Не нужно дублировать код. Смотри http://api20.cakephp.org/class/controller#method-ControllersetAction
public function admin_login() {
$this->layout = 'admin_login';
$this->setAction('login');
}
Чтобы получить другой макет для администратора, вы можете проверить в beforeFilter (), является ли префикс «admin», и установить другой макет на его основе. Или просто установите его в действии, как показано выше, если это просто необходимо.