Seperti yang tertulis di sini :
Jika Anda menggunakan akun admin terbatas, beberapa menu ekstensi pihak ketiga mungkin tidak berfungsi lagi untuk mereka. Alasannya adalah bahwa nilai pengembalian default Mage_Adminhtml_Controller_Action::_isAllowed()
telah diubah dari true
menjadi Mage::getSingleton('admin/session')->isAllowed('admin')
. Ekstensi yang tidak mengesampingkan metode ini di pengontrol admin mereka karena mereka tidak menggunakan ACL, sekarang memerlukan hak istimewa "SEMUA" .
Satu-satunya solusi adalah menambal ekstensi dan menambahkan metode ini ke semua pengontrol admin mereka:
protected function _isAllowed()
{
return true;
}
Atau jika mereka benar-benar memiliki sumber daya ACL yang didefinisikan dalam etc/adminhtml.xml
:
protected function _isAllowed()
{
return Mage::getSingleton('admin/session')->isAllowed('ENTER RESOURCE IDENTIFIER HERE');
}
Cara menentukan pengenal sumber daya
Seperti inilah adminhtml.xml
bentuknya:
Ambil nama simpul di bawah ini acl/resources/admin/children
, lewati children
simpul berikut .
Cara membuat pengidentifikasi sumber daya yang hilang
Jika hanya ada <menu>
definisi tetapi tidak ada <acl>
definisi, Anda juga dapat mendefinisikan sendiri (tidak harus berada dalam modul yang sama, sehingga tidak ada file pihak ke-3 yang harus dimodifikasi) ::
Salin semuanya menu
ke bawah acl/resources/admin/children
dan hapus <action>
node.
Memperbaiki otomatis
Ada alat baris perintah yang baik oleh SupportDesk.nu di https://gist.github.com/raybogman/eec47237b8ef0d4dd0fd
Ini menangani sebagian besar _isAllowed()
panggilan yang hilang dengan cukup baik tetapi akan menghasilkan kode yang rusak dengan file sumber yang dikaburkan atau dienkripsi, sehingga Anda masih harus memeriksa hasilnya secara manual.