Yazılı olarak burada :
Kısıtlı yönetici hesapları kullanıyorsanız, üçüncü taraf uzantılarının bazı menüleri artık onlar için çalışmayabilir. Nedeni varsayılan dönüş değeri olmasıdır Mage_Adminhtml_Controller_Action::_isAllowed()
olarak değiştirildi true
için Mage::getSingleton('admin/session')->isAllowed('admin')
. ACL'yi kullanmadıkları için bu yöntemi yönetici denetleyicilerinde geçersiz kılmayan uzantılar, artık "ALL" ayrıcalığına ihtiyaç duyuyor .
Tek çözüm, uzantıları düzeltmek ve bu yöntemi tüm yönetici denetleyicilerine eklemektir:
protected function _isAllowed()
{
return true;
}
Ya da aslında içinde tanımlanan bir ACL kaynağına sahipse etc/adminhtml.xml
:
protected function _isAllowed()
{
return Mage::getSingleton('admin/session')->isAllowed('ENTER RESOURCE IDENTIFIER HERE');
}
Kaynak tanımlayıcısı nasıl belirlenir
Bir nasıl adminhtml.xml
böyle görünebilir:
Aşağıdaki düğüm adlarını alın, acl/resources/admin/children
aşağıdaki children
düğümleri atlayın.
Eksik kaynak tanımlayıcıları nasıl oluşturulur?
Eğer sadece bir <menu>
tanım varsa ancak <acl>
tanım yoksa, kendi tanımınızı da tanımlayabilirsiniz (aynı modül içinde olması gerekmez, bu nedenle 3. parti dosyalarının değiştirilmesi gerekmez):
Aşağıda her şeyi kopyalayın menu
için acl/resources/admin/children
ve kaldırmak <action>
düğümleri.
Otomatik düzeltme
SupportDesk.nu tarafından https://gist.github.com/raybogman/eec47237b8ef0d4dd0fd adresinde iyi bir komut satırı aracı var
Çoğu _isAllowed()
çağrıyı iyi idare eder ancak karışık veya şifrelenmiş kaynak dosyalarda kodun bozulmasına neden olur, bu nedenle sonuçları manuel olarak kontrol etmelisiniz.