Вы должны использовать только строчные буквы в именах ресурсов и пунктов меню. См. Конструктор в app / code / core / Mage / Adminhtml / Block / Permissions / Tab / Rolesedit.php
public function __construct()
{
...
foreach ($rules_set->getItems() as $item) {
$itemResourceId = $item->getResource_id();
if (array_key_exists(strtolower($itemResourceId), $resources) && $item->getPermission() == 'allow') {
$resources[$itemResourceId]['checked'] = true;
array_push($selrids, $itemResourceId);
}
}
....
Я бы также предложил вам перенести информацию acl и меню в adminhtml.xml вместо того, чтобы поместить ее в config.xml.
Другая проблема заключается в том, что у вас должна быть совершенно одинаковая структура как в меню, так и в деревьях ACL, поэтому ваш ACL отражает структуру меню, и magento знает, что включить, когда разрешение предоставляется роли. Вот отличная статья Ивана Чепурного об этом здесь
Итак, после изменений вы получите нечто похожее на это: adminhtml.xml :
<adminhtml>
<menu>
<customer>
<children>
<wpe_vendorlist module="vendorlist">
<title>SO Vendor List</title>
<sort_order>999</sort_order>
<action>vendorlist/adminhtml_vendorlist</action>
</wpe_vendorlist>
</children>
</customer>
</menu>
<acl>
<resources>
<all>
<title>Allow Everything</title>
</all>
<admin>
<children>
<customer>
<children>
<wpe_vendorlist>
<title>Vendorlist Module</title>
<sort_order>10</sort_order>
</wpe_vendorlist>
</children>
</customer>
</children>
</admin>
</resources>
</acl>
</adminhtml>