Como está escrito aqui :
Se você usar contas de administrador restritas, alguns menus de extensões de terceiros poderão não funcionar mais para elas. O motivo é que o valor de retorno padrão de Mage_Adminhtml_Controller_Action::_isAllowed()
foi alterado de true
para Mage::getSingleton('admin/session')->isAllowed('admin')
. Extensões que não substituem esse método em seus controladores administrativos porque não usam a ACL, agora precisam do privilégio "ALL" .
A única solução é corrigir as extensões e adicionar esse método a todos os seus controladores administrativos:
protected function _isAllowed()
{
return true;
}
Ou se eles realmente tiverem um recurso ACL definido em etc/adminhtml.xml
:
protected function _isAllowed()
{
return Mage::getSingleton('admin/session')->isAllowed('ENTER RESOURCE IDENTIFIER HERE');
}
Como determinar o identificador de recurso
É assim que um adminhtml.xml
pode parecer:
![Exemplo de Mage_Setup (acl)](https://i.stack.imgur.com/HZ2Is.png)
Pegue os nomes dos nós abaixo acl/resources/admin/children
, pulando os seguintes children
.
Como criar identificadores de recursos ausentes
Se houver apenas uma <menu>
definição, mas nenhuma <acl>
definição, você também poderá definir sua própria (ela não precisa estar no mesmo módulo, portanto, nenhum arquivo de terceiros precisa ser modificado) ::
![Exemplo de Mage_Setup (menu)](https://i.stack.imgur.com/9CiIQ.png)
Copie tudo abaixo menu
ao acl/resources/admin/children
e remover os <action>
nós.
Correção automática
Há uma boa ferramenta de linha de comando do SupportDesk.nu em https://gist.github.com/raybogman/eec47237b8ef0d4dd0fd
Ele lida com a maioria das _isAllowed()
chamadas perdidas muito bem, mas resulta em código quebrado com arquivos de origem ofuscados ou criptografados, portanto, você ainda deve verificar os resultados manualmente.