SecurityComponent поможет со скрытыми полями. Он будет черной дырой любой запрос, который он обнаружит, содержит несанкционированный доступ со скрытыми входами, но он ничего не сделает для выпадающих входов. Вы можете взломать некоторую форму AddUser, открытую в firebug, и добавить опцию:
<option value="superadmin">SuperAdmin</option>
В раскрывающемся списке «Роль» выберите его в форме, и после отправки CakePHP создаст нового SuperAdmin. Таким образом, лучшая политика по-прежнему не доверять клиенту. Клиент - это стая лесных волков, а ваш сервер - кладка кроликов-кроликов. Держите эти два отдельно.