Descubrí que en la clase \Magento\Backend\App\AbstractAction
(el antecesor de cada acción de controlador de administrador) hay un miembro llamado _publicActions
que se usa en la validación de la clave secreta de esta manera:
if (is_array($this->_publicActions) && in_array($this->getRequest()->getActionName(), $this->_publicActions)) {
return true;
}
Esto significa que si aparece un nombre de acción determinado _publicActions
, puede acceder a la acción sin la clave secreta en la url.
Esto es una bendición para el desarrollo y la depuración, porque puede hacerlo de forma ROOT/admin/module/controller/action
manual, sin la necesidad de conocer la clave secreta de administrador, pero lo que no entiendo es por qué puedo acceder a la página de edición del producto sin la clave secreta.
Simplemente llame a cualquier página de edición de productos como esta ROOT/admin/catalog/product/edit/id/{product_id_here}
.
El publicActions
miembro se sobrescribe para pedidos (que permiten indexar y ver), en productos (para editar) y en el controlador de redireccionamiento para redireccionamientos.
Ahora mi pregunta:
¿Por qué solo se permiten algunas acciones de edición sin la clave secreta, y cuándo / qué debo permitir en mis módulos CRUD personalizados sin la clave secreta?