Como está escrito aquí :
Si usa cuentas de administrador restringidas, es posible que algunos menús de extensiones de terceros ya no funcionen para ellas. La razón es que el valor de retorno predeterminado de Mage_Adminhtml_Controller_Action::_isAllowed()
ha cambiado de true
a Mage::getSingleton('admin/session')->isAllowed('admin')
. Las extensiones que no anulan este método en sus controladores de administrador porque no usan la ACL, ahora necesitan el privilegio "TODOS" .
La única solución es parchear las extensiones y agregar este método a todos sus controladores de administrador:
protected function _isAllowed()
{
return true;
}
O si realmente tienen un recurso ACL definido en etc/adminhtml.xml
:
protected function _isAllowed()
{
return Mage::getSingleton('admin/session')->isAllowed('ENTER RESOURCE IDENTIFIER HERE');
}
Cómo determinar el identificador de recurso
Así es como adminhtml.xml
podría verse un:
Tome los nombres de nodo a continuación acl/resources/admin/children
, omitiendo los siguientes children
nodos.
Cómo crear identificadores de recursos faltantes
Si solo hay una <menu>
definición pero no una <acl>
definición, también puede definir la suya propia (no tiene que estar dentro del mismo módulo, por lo que no es necesario modificar los archivos de terceros):
Copiar todo por debajo menu
de acl/resources/admin/children
y quitar los <action>
nodos.
Arreglo automático
Hay una buena herramienta de línea de comandos de SupportDesk.nu en https://gist.github.com/raybogman/eec47237b8ef0d4dd0fd
Maneja la mayoría de las _isAllowed()
llamadas perdidas bastante bien, pero dará como resultado un código roto con archivos fuente encriptados u ofuscados, por lo que aún debe verificar los resultados manualmente.